<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.4.0">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/%E8%BF%AA.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/%E8%BF%AA.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css">
  <link rel="stylesheet" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"zhengyidi.github.io","root":"/","scheme":"Pisces","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":true,"show_result":"flat","style":null},"back2top":{"enable":true,"sidebar":true,"scrollpercent":true},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":true,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.xml"};
  </script>

  <meta name="description" content="快速改善代码质量的20条规范">
<meta property="og:type" content="article">
<meta property="og:title" content="05.快速改善代码质量的20条规范">
<meta property="og:url" content="https://zhengyidi.github.io/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/Design%20Pattern/05.%E5%BF%AB%E9%80%9F%E6%94%B9%E5%96%84%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F%E7%9A%8420%E6%9D%A1%E8%A7%84%E8%8C%83/index.html">
<meta property="og:site_name" content="Zhengyidi&#96;s 学习记录">
<meta property="og:description" content="快速改善代码质量的20条规范">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2021-07-10T00:00:00.000Z">
<meta property="article:modified_time" content="2021-11-13T14:58:22.494Z">
<meta property="article:author" content="zhengyidi">
<meta property="article:tag" content="设计模式">
<meta name="twitter:card" content="summary">

<link rel="canonical" href="https://zhengyidi.github.io/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/Design%20Pattern/05.%E5%BF%AB%E9%80%9F%E6%94%B9%E5%96%84%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F%E7%9A%8420%E6%9D%A1%E8%A7%84%E8%8C%83/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>05.快速改善代码质量的20条规范 | Zhengyidi`s 学习记录</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

<link rel="alternate" href="/atom.xml" title="Zhengyidi`s 学习记录" type="application/atom+xml">
</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">Zhengyidi`s 学习记录</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
      <p class="site-subtitle" itemprop="description">休对故人思故国，且将新火试新茶。诗酒趁年华。</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-fw fa-home"></i>首页</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-fw fa-tags"></i>标签</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-fw fa-th"></i>分类</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-fw fa-archive"></i>归档</a>

  </li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup">
        <div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div id="search-result">
  <div id="no-result">
    <i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
  </div>
</div>

    </div>
  </div>

</div>
    </header>

    


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://zhengyidi.github.io/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/Design%20Pattern/05.%E5%BF%AB%E9%80%9F%E6%94%B9%E5%96%84%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F%E7%9A%8420%E6%9D%A1%E8%A7%84%E8%8C%83/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="zhengyidi">
      <meta itemprop="description" content="">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Zhengyidi`s 学习记录">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          05.快速改善代码质量的20条规范
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2021-07-10 00:00:00" itemprop="dateCreated datePublished" datetime="2021-07-10T00:00:00+00:00">2021-07-10</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                <span class="post-meta-item-text">更新于</span>
                <time title="修改时间：2021-11-13 14:58:22" itemprop="dateModified" datetime="2021-11-13T14:58:22+00:00">2021-11-13</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              <span class="post-meta-item-text">分类于</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/" itemprop="url" rel="index"><span itemprop="name">设计模式</span></a>
                </span>
            </span>

          
            <div class="post-description">快速改善代码质量的20条规范</div>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">
  <script id="hbeData" type="hbeData" data-hmacdigest="abe72c610c2a773eaefe17ab1fbd2bf34bfa3ca9d2f84f0e59bd71acbadaad96">22064b17c03cb0c0e58c99349b6889d0b31470871e725085fde7c8feed9af7ef9ef464914f568dab6ec03e132dcf091b4a7c40a29113bb53db3ead4653f42763ab0b62744a6ec04f75b5a654d49293292a45f5a77ae84e2ffd7e81e8f95ea32776c9c11c0d13acdc44d7b04bdcb24657b2599a56a5af567b3105e2b701c7c914170d7a148b6d705a484e4d24804c91830f1a36824b739932874f813217e0eb0fa7e45598d2fbee97ef458c6dcb6a571524717059741438008d208d47bf1e42eeecf755783c92e77610f62705f5e1b43a6ff4bbd478ce6b2bbef67e1dc1e26fbab9242a3a5d3cbfbb0bc095d0868664a3357bbb3f53992bf3b1582a82582c71f52cac63e84b1c471de5fb9e6ed62268b79176a0b8c3beb94fff15d1b59dcfd39c57b4772d11ccf46a3dff3aaaab5d72b293ef072aeb60817b05d0847f0f37acc7c7732c90db55da587c432cc38b0b72df44029f4a1460ed72cc49b857a9042c1e81dc52454ed43690ca2b3303385d166790c6a21dbaa9ba77b307cabec6375f319d81336c34120a5f5b3b6786d3a9588bcdde76062bdbfa4f109f281169819d18f0a6db7d1b9e99f2c2cad05c6599f1c433aaee34bdf6cdb93d8c3d9804132c861d0dbc3cfe63778da487194cb0a6093d5a232c417036c28a369e9776862b4ebbc93e0413b9d9df44455353c27aa258871fadea59bba226e71977c28f73bf4eb76f54f25c6f47f25e968003ae96770d25a3181a89e6c3ae632223244f98e99213c58cbca8fc2aeceb47877cd594f817c346bde1cb698bd1f025b5334eec78e9fa7492469d946ee12aaf5b5e2ed88bb24de08624639fd6dbd866e34df4dad032d2de66b84f2f3756ab8a2812c39ddabc500744c1b897602ee2f8643fd87fce21817a4179f874f087e5dd68ae6bdad9ddc91314c1948df3a368b0355aeab15466a1750137e7b1489d0bafbb035d5915fe039174703f5882b0123029cbd8330b30a5f0c880b8de24b036702e3a206fc3ee9e9816a3c7705ea04ae0ee34a2a8666e76c6fe0c5f8e482ab18fa96330d5e9ea42cce2c9671faa60723110f369bbdabe2ae9980b8029808eaf8d7f7baae42dad18b2515e63caf8f4ad8723b300f0092866c79581ce28ec1aaf141a92ada846c4079e8b050d910c47df4a80df6aef22a645ce0d27d117a170db12db1139758c6a3d046d34e0b83d01a828556cdf43eae04e616343109e9099ac53335081b1e7994b997a3a52b49bc05c13a317b74f4461a08a30ce996e18ffe5ec22ee7a20651486b2e9a399d9576ce64a66defa8d6ac8a62668db21c3eae1326289d18ef292c2252cf987c25407705e658ded15233325fd88d3eb211324de38daf33208ee7a56818975254dfad208fc8391c8e9ca71fd975e53bcc9486e571789ccc12c7d247fcd5fdd426073ab67677359efdf6d813d20aa2d6ccb152d19a4cdf6ddbfde2ab4eea854a5001e4c23ccfe168e2d237810d10dc8a884084b2662d2b12c7d2bff61cca6bae0f72d4a6dc855fd5ea2c1a3d19fe13cf48f7354898c36ff17140b5ea10db64fb79d0b2c0c9b3986ec499c05743d7a2c01df54947146214b292132af65c55bc34ab3a5b550f178c6ef9e8424a1fe9f2bfa4b4fc1975dbf25bcf4b37fc83bce2aef0d5ecd5c825de76e21aa5e330dc01b60f662920d9f3bc290ed5a4e5de11c47c4501cb101e9f92c63b7e40bb6c5812db295fde1f0083028cd6897c19a47cefb59c5c4e91459d5acaceb4a227619f806b642bb2762d16bef5b0c7592a2b67667aaead68aa2cf006f381659c423e310ad1768112d1310ed6f28d44d90595a070ad4513b4cab9b2293f9bf7eea95f55cc0d2666956838e373436107303004fa65ca5b41eb75e36e21f3dfe36b357732fa3398eb74dc6cafb6c9a0ecd4f7086bb41d5188db09ad1bf284368fb46614edd3cf8b492de682cae6fbb4430e7537fd947a14bffdb4d93f0bf51ea70affe8594c6f4f7d9cdb64f8e3844f135fd264d0268d3a79dcc80325b57bcaebf881d5f16d0ae4b302dff84b92a9a62e709fd76aff47716544c3d9c5d76ff0718b534b2f00f43bd5a4d69187f317271e5a15201f587f01e9c05d580b577665b689ad990f7c1abde7b3494ece2ad8c2f16498568e7c3774e02a16bfb021acada09015471dd2b2c8b6eddd525468b5a826f2f269e3f735c6671d2888b4104d64734e43d9da304328fd6f45676eff5d8a0d6b809e9b073bc01f754db5138a0d84285553080d4141a4a910697a250492ed0ebe1e013824577bfa6e78b68fd53d72381696fdaf9ea793010c14a3dc98fc915accb566c2408c7a99b0bef2e1568258464843a6e18ad81d4e90b17ea30e944c005fd6a3b5b8515a4fba8280eb0e1df9f6815cc1cb39d1ca6a019db8186804605d5dfe9fc7860906dc722731ff1bb4d21f3c671fec5d16d5461182d0dd2718065c36769a85f806792bbc29c915c5434a04043d085594c511c2f985b769287af62509c6e48dcd5f7b417f2df3fb2be54f1caf137987a99ad89f69cbcd4d62ca8aea35b52d0e117cf024ad707950c824399223ba91931a8213a946d81bcb8aee40812e37485f88351872b74f74a12dcf951538e64ca356f4a8a84449eacc0fcf18628bfb7abd5afd476354908e21a77b6606b98e34986fd69bd3c8402ae150795fbbfb88c26468967dc9a8d759536aa7a8f31ebe8c85bb095bd817928cdb18e1100a6eb4a1958fc995f793b3b4d30e156bd4642e3c433585476e727d228f6384faa8c9a999687098c36881de50b32b9ff57a65e44ad3c95aa8ad7430a8af946265fb51e11d8d48bcc08c242b9fd32c347f311a72c37c21ac5d2cbd7be478797d059fd6821324d175398fcf2f92e212864f9cd15ef8f8a9e6d104cf52c854846136320a05204b21a1462e6ed5c66afd4ec5deee8fdbf6052b0a054d38c1a7ca22f062c9a90ede1b01d26741e42ad8fa6eb53a9b1f52fb4b371ecf543e124fab2cf9e1f74333b2c563ee0ea92e012ba1855eda59cd06e8f7e74eeb0bd9e59e285886b3454043bb61fa0a43bd75403f3b7d4cc9ee49c4db14535f75f55c9f3c8e622013c6cac10f9979f6e08fdb2613e36b5e9894589b6e13dba25cf6e81016c43f83681e26965eb835841570710a335e6e3a9247712eac2fc7db543971786e50c434022e97240d6215cb2050df32b7441f254f4b2fb3f3d451064e0e9b71a8923c2e9bf3f71aaeacf5a13e44d2da2a1b7ed0641bb71b19347802b87a21ec671aab346fc8724872d615a2e1a9c2c312f9c66f467da5b0af480a67263e454ee68e4e7b8ee86bf33a025c77e01792cc796e9d807a6083538b48f211666ae22acb860e5fff38a567342ca58a92c70a9f0d43975bbc77cf22be2790439ceb0727892a08371946a5eccaba9f991f2c6dc7b97fedd27e17dc48a419ecd6802366d08ca2cdce22facc6d0cc493585a86c4cf4c118e8aee51b41197995a161245c46791c15b7476159de3ef991a8b3ef0fe083fbfb11ffb9381213ba857f8060c0624c471fb7d38eb523989a0fe17bf400cca198d8acb08b9c86d9d36d945f139adee00580c6ecae15ef7fe0010afee5ac1e77aa00739492d869e2891eaecd61baa92cd22eb67d755a097bbf22b2249d8e3b992f618fb891e0fe0b34ad5abacaf30a96f1c3acce313e3eba91acbb3645db2acd4678a6cfc5f59caae5ebd921b7069ed59ec85c3d079a7ae45731eb4cc623bab1f6ed9879ae1c724ff95ec64609c283e2342a9f308502506054b4ae764c1ad759aa7f4f7d95f3a2473ecb354ff0ebc569b9728a18c0a0c78812549187322a19f1f34bc9355861ce0e86a7fa4a2bcdeb0ae46433488675b1e7b9d36208bcf4ed794de1be03e1f9edf6384507108ffb0055749f27f9576f5744c135699f81d3ea1cde9d320dbe0b7a12f6e037900ba02075ce24bf5c001ec14075f965c8dcf2ec1e231e15be8e7de20d5f2a34fee7bb2930b92a3cf5d3fd4f8f5f72f4e66ba4799beb9892670a95143d18d05c19b7069e59fcf2712f709d39dd1c1a36939f8527ee7a2d35892bf93560ac91cbfbd9f98696b943895b9a5b172064b9835a8291b1e93b08e4fc89a0ad81bab8f3c52074d725f9268a6860004d3f55f9ef6d213f1b9fa9d3722b697e3e9a2212a89255f01c441769411748297abdf295a626cfb5a6e5aae111e9e675196756ef1e027e23dbf4426dc8faf026c9e7afb66a57c6f8d57af94fe6e08505b9782df7c9cdbdbbb8e7eec4f4de31a9dfa4d3a33d3412b0c15db71ad6a934f2de4e46ba7d161043bf57eb765b99f6b2428d959fd53a4792c58efb8712ef8d896a5ecbe45f839cdb330d0d6443a45cfb3d4fb4d81c7ec4b9abc21981fcbd48609b41098464561d1b5ffed4da00627f7b1ded47c8ced8e205dc9318ca7eddf71b4753ea21870235cb559e318bb78c40c7ea440e86627402f2579f60a60827a61ba31ca68983b61de6c6205c0f67c4c6d87f7d2c6bc9ae65a12ab697be9072b73ba411278bfadacaff6d717ccaa3ffdf4817c0d6cec7eb9bbdd7a1d9d82892788159d734b737ba704cc5053064224d1dc3261ad6ca2687d8b3e75b11133a6ae33487e481610945913642094eb5da6966bd372cbb810b1a2de92533227cc269a208823aa5187be5cc9c2bdee465f5beeff4b3fd56236de677e94b7301858f217289b783739f23118637f1ee86f1524825e17007e05e5d8a3372f1ee2aec5ad836e21510c99b0c87323b37a8328889eb46330ee583ec746c2dc3cac71b3f1714fc20268db6bde148ccf88b5ab063e1bdb7ed9237b4d4522369a9c80d5286a2c1e766638322e3588635409f87dac060c2f8b3f72626fef1f743743ccbefb0d51afadf66ad7143c6bae105d9d1fed80b22fdd310b74c367c5c110901d983f5db07bfa7193d853184d700844e9afa47fbfe5b43997f622274629ae73952f5a700f43b4b5c10b2bb0a0f07febbede5fcf5ab6edd9fac6a357ce1a42e3e7e0bb5c198b5763c2e45c152bdaa12a1bdd61c36f985ced6de400b5f582ed35f15743408b80730f076fdd1bde5506e5b17f9a7e51639a4054265f59ab31a631fe2030bcb51b18ab803c8c60ee691e0b3d8e5e86f3e4478a2622e688265c6a2588628984b53f4922840789cebff3c68f5639811ec5fbc76ffaad3c3a127d526f4ab16145e45d49ea5c529d7fbaac520d12893fc0d14afbbb61f1481e0d7431ae12da841f175239abbe4336792ee9d3596e6d618ec18e15d056fcb954825a14c01744064378d9016daeff3bedcdcf6fbcaac6e248162b5b683d4743ac8caf91a82a6941d9d5d8fdff740d640be46a101428b63af978a895fd233f66af65d4dc791061747e3fc15645eced6c294a556d5e75cb1bfe798c70c9d4a516285522a712d862c9686224f5c967654b6cdac1b36ee0d7dfec609040d2f4547c18619f8f891896e8d5f6b5a1c5664f248ab84439babbb0d6389b23a835e816784842ebb8c7cafb3bdc80f382b110264b14f969ecf4455336a4a52437fcb63905d3c3c5f4479f9a46182e8e919b30a4d458bd6bd296fce1172545bb1f461384731262000044c12ecdfed1ab1701992118b425129dc3f8c1f089df6bfcd200a22099163dc2793484d57a459ade86db5c4d9e126d4a336e5b317b807fd6b8254b8ca14b41a2f121f5f6df67c765885a7775b924429cd68314ac004b35d1fb79715a0e0d54726d377229e93bf79f5fdfc6c59a29928da95db78c6ccd7327439f74b5455dac96240744344d80557b1cc677c875f77d479f4470bc821180eda5a710be2141cbfd2b9dcca59a00b758fefe22614acbe755fb1f1cb821884afbbef9b9c91927dcfc6119d6ad860add9ec3db60d3585490174b0e6e77b9e4ec682eef27dd8f98d7d98d1090ee13973c0aaa17d5f3bfbaea4c00073cdbe578ee1136a2eca3551d4fc98698dea43e8185163f21482b009e48f74f96e97b0273765401e9b7c0b62b079dfd9464fef1f42f528e7c700e12b5d58c997c634703a121ea5e72ba7d41283169b650a36415e623dd58d501f6da8f6965ec6c4c32b734d9c23494362e0a718b38d589d11fd65b579ddfeaebea3db1dc7476347e3855ad05eb178169c83f9fd806f8a4f01519c22e2ed1f735a7c4647df2b8e29c269d273417dcf61f60d1e27cff0d3df993fe91c14041882c6d3bc3d0a8eabb30cdad00318aa4ba152f6f60f44f7743512b50df87fb277a5a39b5514b621b54572675a22a42d40ddea196907052419ae7cc8acc17fe66c00baabcae6800e57da6ab030ee594666ba6a7c7dfd8af55fe70e95b1cf887d4f2940a3951414bbb9dc6008bb6369be2381b652afafea65aaf13c2a14a69137d6de99e3cf76079c3dc422adbe6769b50277fc68200679e8a0a399d97cf7bf74757cf89eb6350efb4963122af441190d7c16da7c93869c083a60aa4091b506cbc5c40b67a660843e4647d772f71f83d869843a0b469001ea537dbb11902b8316a5d97cabdc3a7602c523099d4c22120adc16144109a1d510e2bb8721030ea36671d319a01c53c55dc1b8bb854b76fba356abe8614e8b17ffde7ed9b08bd589ff258b5f1543b875761387e3d903b46041a3adec5ea3b67738d0d45ae06cd07323eddbe1965e66d862338fd165f253ec3f67233a3ed19318ba495d8d4e60b4d404f655242d0ba9878a3cc7bb16433194d23633c2fbe84305fc9e37f00c8a446c52d6e4b195bab3e1c95d6245eac381c0928db0e9ed6d8a5d391e5a5d6e7508ba6d584313b73362a831800114a10ee7f3aa4d509cab4657c42a6fcbb2d078f4e9db04d1cb410369d6f7241c2292e310cb808202322391a8da371b56d2f30c249882a6f6af510c9c6f4112584042e305cda18c735a433214fa097383f3a5be126bb53d53ae16653d5c8e5bb14c470fea56bacc43905e113b3c724d6284cf2e02663de9c897138a74e82fa80d9f71934539c2957a01593f98b47c0c48255f80b14880566554004e1c4315d22547bd3caff9dd4fd30eeb92a73c4418d4a2746b4dd1c6a4846a57ec4364dca111935844d9f09927ee6d33fe5614aba55793f42951e121694cffcf6a6620b24468eaf496f60eff6e911a5d984b74d085c9ec84326e57994e4ed4c193f718aa6916ee25ced8ea35a3d3bcbf073d89362b39d94b77ac9609f519b5cd110410837025046afaf584b05f972df3467b3a508f12072041071955cc006c7405aa379e22eeaeefbddc70aa6b917a538d8fadf6d52385679e9e4afd8c16b2b7a80d2f40ed46fabdb4ae6d7ec99256c020de093694a7ddfcb7e8c82941b4a984c3d69476443845353e6838943572fa4ec7aa0867e579fb3db7316430499c0f8d0001658e35c592e71d1840a588e9184d1778ffac83954697e609cd3409a784882165b9299de3953f7ae6648fe7d9c367e7195b405cbee9c286320c928a96ddf523e6eeecbdb107171a7755e77ae9844b1afcb73f5117740d3e9a22cf5baee1cefd420f1f8bfc684d110c586d983408babf17e2228083f5d397aa60b27773d36accaecf2ce3c043a1b693119bf6f8afb3e63a7ee1776c5e746ee57584aab08b81475c1748f3d67ca9d0ea9cb414bcf0fbdf88e7683e974e02c09faa395a9f18261bf2b51d0a6fcc304371634c6b5be98587db5491b0be1df3135d82b53fff8944d186083a07cd702d14eb03b84ba22913ac6e9cf9d6a1bc1bffadd7dd269ef60822a60d34e4c884c8a9c07e2cb4b9ac7db07bce4ee829b4c0e09559eb45eca76301598fb95a136e0b9966e6ebe452a5e7aa18d68038bdbbd957db9df0f76937b0129d582f75a8afe65dc8bc6513ef0ea48fb201d7d82869f71dbfa504755e26afead4a8499e9570eafb7f5f1164aa022a9718b2306b9927b8028b3e9463f145e3325f2b117c20a31dc99f20c31611c7fdf905e17cb416d8c39a7e450e6b964c17a40fa801daecdece2f74a429c631d096895b508ab3affa4ff60fa35c732616a8976b060fe95a8875e200e4de5143801ffe0ff64cb2c7c59b59403668a55dda905297f887689ce76169f525d69e9c1a1dc52ed6cc31d55237d5c036545c70c7e18d2e47cedb742b79c587ab5fc6e6b8fc0a6d7c0f8fc956301ee72229ae07d948c156d94a00c5d447c1447eed263241725261662907dc11a08847cfd7fb39970d9a60c20649fddedfa5a1e3591cd5ef4cea74473397018b37b3cb949cf486ce483fdaf8c6583c6fa0e12df36670de6a4248e710cf268b482cfead29d54119ba9efa7729f5e9433805c5403489358340143715761633fac5106092df178804b83a8310a93eaa082684e92211a1ae2a87fb477bc0ac42d67d6728db30bb776d50c78d726ee58b300607d8f8cc07225a3b48d57ebc506c2007596dc2a8c912c4592959c89003eb5618620b02c3175ea95faab099fd0787f89f5a4872fea1b11bbdb7621b567dae693b218412673c794d2b37d0ce9fc7620c65f7b7c1e7a802a36c84ceb3f5f51c8043a8d4982e49d21699177d3152d315664cf3c8057e2c658e087b0462170cfa05c566078d01d5c83bd71fc9d080b988f1cab213d491f9950c192c4a55a0f763859b72c09a1625daeedaba0ad34dbb766df1b500af6cad8dc5dd90457cac1837fb0a8ae746daf07acbad4190e84b9adb86b8a27c0d904734f7cde35c558c464dfcdc0f33dc9dc8886ccacd3d33fe5bc42262022f10440677df7a04217f9014b1d6b5006791e8231f4ea61643bebbebecf49a322c7dc0d3a1fb16737c9832d98183b6354da01445de975db34358c6699b4cefdc084ed587bcdbce7afb0bb34e3eb3077abd21963df68b8c9826eb12817943c361383ee33584cf979fe8f8692aa4c526d4cb61eba998125daa8225b78b54b1415d831218ca25120a70193260560363207f2ca71e77317a6829b1315338ca263f3a10529cf9cb6b47a81f5c8818783f7096ab7cfbeea0e2f5941c7c345d5582c839043424db0a0dc306c636cb84fcd776ccd4693d64b1fcb05fefa38483d7ae76166cb3f8d937c607ac7d7b52cba734c99cffdefb24857ddccbbbafe10a233bdde01ce131f31828bb97f1eaab6cb4371662423a9323c25627e599ba685cee08ddb5cc9a308b621bad60f76dd4b291151c8bada2bea5263f6533b6fc030d9bf47af6c8158e475c0b8292a0da11046f7cb83bb918b7ebc1bd6452f4029096e06f3425516a85a6cb1f3951ca9235724694587e98c2d52a1c52d6056ed0e5ced908e71cec78f78b1a42c0117d3cf3d1a11cb56dd59ac009c13a6db6a04df388d8265d131e55563757ae75398684a0e82fa305a8fcec9a5d06076049c2f032769146b2b206fa07dbae6d270d40d05cf7171c8f2aa7cde5527e6fcbdd12a6f335a434247e3904a22e3b8bfd68007dc38aeb04b16ae8cd29f714c56c60e69254f793ab8200c8ad1e876807b49a5bdc5c65bd6397599ccc55331c2e1bedda9a3010ae8268bef8f12cde5f616b9bcef78ccec40e411d714ff896f9ea87a0fe6257467a00b5882122885bae73def5540d754820cb16337d3f1cb6342a5e144a33c607accd1395f3609309ae339ad60fffd813a7d8eed9ed3d910f6b3112e36d59b82c09b9114bcdc9c1be3a524914bbdf75361fa26060f19127d8db74f626acc656745c2029273cbf8002102b8f55bb2fc8404879b5aa1e85c0ae137fea75231f908d72cd08924dbc20376b8b8289e69ed623eae009c0888fd3ac38835571c64862800521fbcf01d01ef3ec9e096ca3570ba6b4951802de4d35679bc4039f3e64f2136d9437955923504515f303a500be10d8968753ea9f73ff5f7d8cdc26e155f830e796d27aa8ecfb03fb2ee5b1ac9d33cad5d7932bc5b8704402529b1c6a446073aa6caa0ba222b92123b70fac2a69ac9ba719a83157b639babc06d31d3e33c8bcc1ef75aa710b10f8636be3504c541ae51fdce8b98723bb191f40748d8aa95203c8b15c23bf22477be601f3fb74701c8720fda800fa4997deee47ac88e32ce6bf0d439541d45b53f17d4188888bcdbf4001a946d934eba0f85331691f4c45c19fc5a62b540103ae7b7a072aae7ab6ad7e0ce9507292d25e9f4be7b725520768c2e802ce30aa3c6db913f6ada18cddb72916b5c579a345e7d10a488165469823a53c8523fb6213e9c4e3de803f488cfaab9f136c578e35a478a3bf8366ece035c1173e067453282a8ee5cf3b5733ff8c74d57978b99308b2560079111de4d048b58db20ea5f9d3a995b978eeb0606367dfee308ef0b9a4d03a59f7ac24e1aaf3fdba2b8e353cd77c9f6cea20026b2fdd8d3579b6cfa896074e111655318794eccbdf073bae413b512869558e11daa3d1d7f1cb46cd817f32211046cabd62a6f8a09028667be06207d2d59bdadce724f202c05ed20422b88ae778255387c9e5054b5c6161bf044dc0c0926cf5f12d74f15271a7bf5a91eb95e6d4c25bd9e693e58c3008fc96e65a3b999c8e219015ad0b30a0f9c0874e54c9a27bf20e285fae65944a67e969f6675685bf4f5c9898d8d32ae46a72f2b00441e807fa167ca91335377b1237a15e6559803d86944c8a0adef605d6be5c12d1aed3ba7e0b50a5820e06981ab1dda0b9bef8c94a13268ce4ce555027849a98597b4b38d6e186ba9a67e538913cb76186d00613cc957403c1066775f34733d7b75270454ba68b5abefb01c7826852613aee6b2ded4e2b867bea42f35a559d25af4065dccf26c9ecdf47d5298a35a7f793b5b8e43143985ac0e9af1f980b38272be215e6759673916ca94c1b8a67e58b1c14526d680ec6cec424c0a80deb25165df7895f84d3c3ca772b457524e13fe0a0b1d82f06dd29427b75f924396f3b6f6910103b74c4cd08a3f61c8a28979555acd2e1896d036fee891c04376b66521b7da991c4018f932b5a0edd19fcd8e8a3bc984c92e4386b9c383b93568c20bda561435bf007d3e5f950050a7a982f16030e31d2e1847de0cbb7d1bee9da445b441cc008328a3888e3e0e02af78046c3863703c4e4b0066544823cf697c79e9cb6621f42d87951ea3eca236d1ce92249f28340e6184d713b382bd31437b5a5d8b642ff27fa42432e06ce8da5d5038eb8a98f9ed96bed7b9defa6224b7b9e74cff053fd60519c42951404ee549ae9525f8f2947952bb54c64fb83621774af947976fc23827fcd9ff33ea3812cf97e95f40e4d33a7839ffe03abd203f06e4a3501e25a06051eb27c0c3913806334992168acdc98da63fbcd6fcf3380d2e7e8be0d40cae7ad5f36098edd4194ca9a5acc69d3e53bec18a806445a3421a657d15c64a51a9249307730f247d115403f579a8f39f103344a2edc77c1eac9062245c81cc22e867632ea35e72504bef0585ef8b9f72402d05e9d1de8a2394810dae35e395c93de290fbe3ce8af0e22e246d6aa7b2d0b9387ceb0cf1c1a0229d6893d45db3e75e7b5080c8a3fad3d8fad656b759dcbd9b34c38ce6975bfce2124d67b067ded2f4b6af9f452b87c6b7578f85e1ab1300fe20ec0c7cf95b5c04aaefc49770a1d9cc6b20319ca8e7783aca2a321ca6a1559f9465ba07aa126fde0e702193096d0f3f09933318b900604b39b1e29e0d93d1d6960ccc6d13ef80edd0aa33d9bf22f4f392ba01acb2bdc2550f9551fa30a15c406ae49be725e65fa2c439d761a93a4ec1cdb56569a2b6609f12528b3902aeb8d1c71c11ad456eb60584f8d99459a3163726d0c047c78974b81619f244c54cce8c1d4c0f8e39a43f56d89f89f09e9b30f09f7bead3e086f9c61be85c4b4fac4b17771f1351effa22660d732c289951a8ca09570188610d4d857bc5126068aa220cbafd51364f08af570828ccacac269bf89e62a7207ca641b5ad234c1e20f8e0748d45683eace94a1afdf5914a8715d24bb9330622b6526927c53769c7ae4dba4fca44fc83367c319c79b9bbbafa525d9be3bd45a37498d619f1956732e66e86c49335349c9a78a1c7d991dfbd4cc95cd7c5017e7e7a89605200bad21544af00186d9b578406afe48d5ccf4a0cdba8fabc94deea4f9af78f5b6d456763023fb3256a5036c713707b098d7607afd1d68f57b88587a99e084f4fe60c7267daa64da7237aa5f936443e1bba6cc17c4f7b29bc42c23a724dc156d62492a123b33ddaf116c7cba4282ce1610f1f47229eaea52b6098314b29fd0c8058c7c9b4979ca782d3350ac59a54d6cead4d43d7b21c3087553db944886dea2f69c7a1e8b7d1c5c7e694176717f29bef392d933aee40eae8cad1d3d00f695c7956e904b37cbdef3dbe1671aac2594106e22f3f869a6bd6ba1adb0bb96604e8240c63c4a45eca0638a9aef30e46a8bc30cf1b118c7e53b56ee2f0c49fc076dece278f8fb6e40365629e27626c22753c4bb8f41786463753554921de8a2f89505354ac707483ae9c8b01b2019a0a740c4ca51c7be620c4379c1d4ce88bb91094cda08b6764b350f48fc1895ddc6e1e5070e1b14735031ae5a08b0191aea5bcc4d3a3f2c616c87ed1cf75aeefbbcfafb1f24a119be1377c6c7062854675fe4c09ac0922bedf221d6f224098b5c96869e5f66a83219463fdb861f246be8ab39abee57273bb5408a16313eb2db11732577bfb1a432ae303c326855cd96868d82b28660ed2b0d6dcf036e6b27164df0fad791e4ccf302b19c82a0f50cee9ebaa0f14e5c8809903d7f75a80e179e85c773bdd3b045330a70b85a0c69bfc97f5cfe0daeb9300f05b92eb245e2d461451e9a283fccf8948b53446b07ea4fbb2729ec12dab9d57870ee41285d02edf4482762e1c26ae503af1774c33e6c81b2d2c365a581cf7226c328b855e7580b6c6775ca6da833b6e418935eb0b4c3953cf409544c5e98225b3b691803a5b4dd86fd4f22a14b4bb3f949be9f3f58ddad74019d0bced78ababa9786bd4ad38cc68680b27e1eb925d1d6bb858dda95ef513fe83c762d350bbf46f15fddbc9066c628720f9dd88e2610544488b6957689ec1ae7ee73828201e45dab5c9959d11cf844c0d56d307ac25d3a299b694aaeef70671eb86f10de5c888442d310518787db3cfdc3c72e292ef38a542c7d0de252096f5ccf4b85363ff1409ea89f857e5f1c6e05ad7bea447db8d684db0e93ca50fe063300ecf760b5925ff568da8a9c661b058581b1b8d82b61e3ff669235e46548e7d3a7a2b9c29707682ef1ffa2d1297f52beeb2c5ddc10f73f0f13f4dc78324c5fb99129bb9527c65b0d310099e254a8bb0a3f49aeaa72b7f2d280b08423eb9bbcb15e030db59ac7cc1cbdb7bc5cff0c3417cdb264dc55abaf2b79a7eec02de7b7e9b3396b05e8db5eafd8ef7af7779bb930412c418a089d33455e86127ccc37e8e2e3cf8d123701ea4e496ab5aa413ab50c16ae65a0eee506f4f4a2cc777d31e74d6296f9da97bbd6e515ba644b5e1fe6cd72fed279363f2fd7d3c7afac964e3aa978611ce4e2996c94445ef809f2b881f9ab15e9f56000365ca4e692fd34a6f5f0f4c8bae41e5e5edc67ea6722af5850bfa6660f7f34dede6c2d7e304ac75aa7bc9d59f7e4846819296f6001e7f4ee1bab8dc4cfdfb39aba9e036a597204caa655cf57ad81f362bd7e9360886fe4743a43486abb16b4f2bff12b2a9cf762acfaf5a50577b7b3aa5631286c00ca1326fcada005d7f86228b947a2e69aad660fa846cbaf9505d9872cdf82a0b8e8a67ec23dd8b30cd6859c9e712848ef79ae53fc4b654a72e8548cc4bf48abba540a81134dee4e733684671b38e0e430adc7d804dd68b4409ea2326d7d31d4a6366aa8b25a77fc0edd1087a66023e57ed3d77ee660469766a13cf8921c55b4e618671e59bdef62941dcbbaffea14a1bf4841f2fdfd2d21a46e98af3afd3c39bf1dd93b9f92691ace438ef9e2279b9ed45ba15b4dd9304210e1db352cff5d987b94fa6e6b516dec91e114dd7bdd00e576417d03e4056126d15ea02ee0c57ff7569b5494eaa129d2800daf89038d94e9ccebf8b0a7426a9b2f6e096458affd2fa4c4da5d02952fd33d3cef1e250cc78bd1fb7e9e6e92d0c63eafba5510cdb677c77adbe278a216541c1e6e1667dac4c27ab6812388393f7e27fea9f66eb8719956cce32c047d90b40307fbd5bda1fba301eaf1450197b5758c90d8b4d0115db42270a4d628d9ee66ecc02bf5ff4898de3772f10e1a6eb089d50829bc5457b959eb0834b7b4977178ccaeffd5fd197911e3e81aee9bc5a0018c84f167ddc49eb53f172a96034b81ff5e62363c4a9883cffd2bc896d4fed9bf502a7d9aa1bd3c1b898530d18db956d29334e7916ade017f470128683e3bb82c2bf779ce75cc3b88579ba5b2e06c0af43b7ef8b0b22bbdf6b20e4c5fdc268c60a6bafc943bfe90c8c8385d585c4c2ac4a0173fff0a6c0c5eae67d7c4f378211f9956d6ef9b4fb7b757eb96ab72e0ad4a2fc738fd7dd5376db4917a0efc36503b673c15bf02b7cef8c697a3466d47618a82922fe9748184d2ed0adb8deb4dd07df1bdc078e4746500fe28d49656e2756eae1969ad7625fb0fda179fca6268193e2e055e4a43188ae259d2a0fffec461920da5842a0cba31d8a200a3abd11785546aa499aec9d981c64a607c8590fbdca8d4c7a2d00fcc42e6bc25275fda791c14a287135bcb25ad887537d6b7b0749bd1017d4c0cc9dd408a939f7842ca0c18b17e3b70975a0ebc38c11642bdae94c835e78569e4da4e3a4a5327e105378f9774d4143a18bf203cbb281240800f300773a25b56de80e56320f64232f1a682553b5682cb0ca509e29bf3fb21e8c5b366c425d7da05203e136b0a2e996a47639b457d1b31e286cd6f9c8c7806b13d61608cb35d94bc35ae361bc2703791fe6b3ae64c6eb769575410628d46f878fb995b6e222012f89ba66300056f3334e5ae68fe21ae0ffc7ade8c7a9d3d63b985733afa95cb2c06b3b95a041fdb525e14fa6f89a3cc73265d222372bad60d2928bfee3bdf51b3a91301eb6b1ed174d8cfb813663d18baea37cec63fffbf45e79f297ec84fd315cbb16e974b91ff3ff1ad373a4971a7beaa8d8b7ebd56918b1f840329cc6b6ae8533136f93ff649a082ad4f26105df7d7731877d84b8ec34b94ec5b503294a7fadd99e6ce2dbbd4ddc5239e8e750c69516f40d534ec8e9fbaa85484fa7a3c24806f196982f6535b6af7195af37bf7c8b119ce56bfc4c3f986b01c6cbffa4653dce30b378e9d07bfdfde4f3deb4ace38aa4d5be1c05963424565b30ecb215a41a15ce0a72300737470ba8aba206c3d502797e6280616ba47ed1f8d921fea47b2e7525e8e73da4c37043e640f7218be1ac04df7056e2e6dcf4e2e87ea780c7f21027d2a1654564c9f39aeac7eefdd53eef4646057cc0dde65133ec27db7e21ca8204dd61cb9170e692e14e8e1e643195151fd4882d151c2139045178df43982d5693eb6ad961cf28472fedd202d24d7bebf6d98dcdef7fb1af194c70123b5b1103681fff93f975df49f6112c0d0b88959d22f9957a796c84a29af428202a1e76439c7b1431217f758be96052fa0582dc49aaf88e17480c511a2b7c329bdcd51115de0f056980d539724c45981f26dedcb1833ef536b1f6363057ff5efb69c4cbcc23d1b9ed9be94c1b514d6776615ba36d77d56833f9885fb003aefd7ae079835106d404a427e3e544fae0d86a9b85fbfb7e5f32f05c9f18cd23da205f2fb0d1b9993a95e233d8851e7f7d8156d012a2b9be8922cbf5768f1ec4a447fe35492ef0a7fe99b8d1df9ec66dd2491dc687525e80134ad2d43137515539b924bd63f516abd0994efad017414fb9e01aecaf302e94c56d8ed11e3ab45146ac86cd264d3a9e254b83440756e680df5dab49532d4cbe0f2454f3cb4674484a3e6cccd2ec8c09367ffd483b8cc5c7a46aff70d06e585fabd6221cc8d40fb6d875324cdf7f54cc9ddd85f880f9b064a3128956db42032227b401a3e5abbccd0794b6f17f3d008f95edf3aba2952077adc8b4c3b42b6dae9a072197d466c3f6d30d9eb3c6bd6261e919defc2fc11e55ea20b7bd812078b925dc81685701a9d8850469cf129e7a27a555196e17c4f4a4b85191d3949bb9b8f57c867d77563f82a2acfce1261a4c3849f1e06aca1149e5d14f6da8b7ed0863502849a24ec4eb4f77f6ba8c366a3a44d97281ff2c4ccacaef196c09c7520e9f7ceee6671019b6240a0b8775c410a9115985f5d6fa2855559973df3ecf9d7d5f61841a50a048f0fd7a97eecac4d97eaf2aadac88b409ad0b885b0ca3a3f55e90c373b5cac4b6a172957d3a21becd34329bff6649af198c3b2268f686427fb570ff9d0cc8a8c77a56282fe219799247d5bc972479d9c9e37cf26f678cce58bf33d8ce69c25abe9395df403490070a6627bfc275a6cd894b6a6a318c6aee2523a9588729142f01fb11485fc822193f439b91467ef1d9553e39ae32297f265293f52bfaba2ccf3de3afe66a7928616a2191619c2b35fdf84c2556be5ff2b861c57c08d791d9d494c72dd235ca33753b4ad22ee9e7aa6d385c46ee10310d8a58df07f9b8dc5a02a8c8a4081c96d1ae429540c11629e84891e87ad3a3bd2ece1ee5233cd96e4b07d1ebb6beb50cf778f5b3083af08cee6292d44b9e7455610ced406a44648f8ba74185d6b3ebf55d207fe7a6457ddd1baeefa0da63b5dd8000d8e1b51125c6100813d996b211198a3d084a44475562f9c4ff42fc2082d9a01c101b5900e2f3b2c4f8603e12d54f09cf70b25bf2b664f82b465bbc0a83ae530158a2aad7cc91d2209e7b31c31208a3f350267f147e5e47470b6587a364c54a5a385e683e4065ff629f031fa0986c5c63833aee1df9e37cc340e094824f71f08f5df0e441cdbfd2264710246a600105f77c62d2febb4b3d12bb00023d528430d4076685d3f3bf3be6c86d55800d07d43386d4d1f65e7f3578e11c6a760df23880f84cbf451cadd264543e34241b67d657659cee95797ba43c23b43137221654faceaa7b410461a3e405dcf6f23a9229616acb78f90f8c0b0f3aa644d4ad2c7df5101bb3ecbc43637e65b79e11d218b678d46810d6d7caf5982c964fec5f2c5d02816486414aeb97bdd4184477ac0da47a363d1d4d9d2dc1564c0b9b74e9d30cb7ee950c5b8c008c5f56f7faff4409f4a35eddf4e7ce2f4c265d031344cfdb08b2b475badcc6cbcbf231a27f17aa630e838fdbcba80eb0f6a14658cd164d9311f0a7de71844ffc80edd5516a08b12b13aeb16db8ab04632cfe1f593a3b797dfa3fe504282ab4df13dfc570e3fa819a062619e0a63b6a7f55a0d3839f253cef0dd3cc7b78069ec66c4855df67f82e466568a77239a083842faa930fb09e2fe9d2d6d22d80d57b2f9fabeabb3111ce9abfd563fb4c56be12dc8e8ca3eba915ad75fe1fcab310aa15aebaa1faa640f483fc35d468c56bbb5836a0e92024137356d3351cf4a9e19c8e3d59887387fd30f0bb7054cf8f8f6a4a3558d34e347997bd64b816a93de96fd1176d90f49ce906ff3f46c976c9d38199003896b41d411a5d90e2440f55c64291f95ea8cf48a9dae9f877b650779c2ccd16bbc39739f90fcacbdbde315f71dbf401ca16ab481b5b7590f53df2fa9440f739f10b5df80d2fc78eb91bff0c5ca1b146ffbbac078d763c5282b4542790c93890df48b8e221259cbfca7a3560099d7c897762e9f721bdc00455a24cb2ce1eea2edcc4b516fe08ab85a8e91ba0c39c671ec23142026d7c671e5751265a4f80daa7b76b93171d5914fe0da2ea33fbba29b9c1db64c3defda37b8e7f4ba7d815f6675e8d28a7c988ae478f5b15f1b562bdb15ca56e7a0c4c114b30f0e1433278ceebe57ce74eec74942665bafcaee786cfc2e144abf1c224c7bec722bce7735c587970d751fb917c37d19d07c2da95701ff3d37ec1045bb1410b8e4355cab00faee26200dcbb1b5bc5e105dba98e6ee925743bf99f418dfa9fbf30c2c8be17b5defe32c6f752d6e46b4b4fe064eabf8f3cba3c6542e3ca48398c419af4d689824f8c19a902db4e5c527e3664d01c999d50d3c4b895daf1de2e664cec6671317f4970267d35ad49267ce7401dfd943b5363e955d9660f9d4667d750fb3a03b964517f6d8cac31e440a4dc3dfa36b7932dc9d42b0df9e2890be6f31aa1546550a1d123c362780dec218ccdd1ace482425c1ec73cf679d417f24db985dfa1540b9f3f39f30d016dc742f7216c287a0424e92223097d882ee9786fdb7eb4202044e72943c550b05f4a1914dd1e51719af8008da1f5a6a39638f0af00368618698c87abb390be39e8f63514ed753c7d69fae4ef561013bd44138605c0232cc16322039387ec4b4c09f643501edee9d45f84335aa28f0fbd2bb1178ee36cfa12cb6fc22ed6035f9f74cf21f2d10072a35105add13318799feac04bffb01922e021f7c7c39448853a5ea96be8153b4f5beae246088558ad5366280345f818af2a70fa86cb20438f54e9c486ed2331fbdf22fb58d2d9fdd7cda38d679e02f22b63de048371c08237165818d9121b946a8d09e3edbc774b9b7da9ef42c75be698113537532dcf144bc4e02dc14f004b277194fcb67eb34cfdffd12beeeb24bec8fba709421cd8fee646037ce7ff12036034ff2a082af40814e9682c7349129f1acb05082eb9d2636f9ec7a5f4e4118135c4043d50845faff9a88a53c15d1fd378d2ae1a8a45f0cf94526304789051e59f2de985b3372a14c4afbc41282edbe9391461bf1280296c8932bad957f8231112d55d9ef68cfd2754fe5bb68792cc8aec3f107d2742ef7908db6cf33175115febc9899b39bf92c773936d7738fbe3fab445230af630fbf034df601b1d84a97005b2d0d531a8a87bdea3e43fdf91b0af39ba1e4f4b671b9e7260495bf3bb24a4759586e922b34fb78a9bf05e986ad4f5fa5fb52c537397236e3ebb555ba6d9060b3dfbc9af92534907b4cc62be5130cc6dc7e1edbbc6b0ce6e68d5c30539e4e9a3cc48ba29604f455f41ac76a84e89d517c7eaf949bc0758ad7bd37bbc24815b750f27e6115fda76760989d9753c00fddc0105e3d6299907e8319493bc1f469d08433cd03afcfe16d442170e159a5dcb55936e45f07e879d70d711389e49bf0c491f6f689eb4fffdb7e8c706ab3a3de2adaa95d567e722d24e497f8f3e847e6e54cf38881aceb99820759e92c412b4ae0fe41899e75e93bfc371377816a37775c579c8505890e1cc491ed2bd77d7a2e3b8e9a060157cc64a837b7d0f8596695330ce014843715c060c43c6a9c8c6594f95ebbe3c8e353d74bcf7fe279219bcfbecc996d64f9efc0ed8c230766b68a1f6e6763467d150ce3ffe904e81a0720ef5adeb1c3e7026e6d68f1375e97f176b279bae378ef9bcc29ebc49c25da2a1ea17d9f1fe42e57b406ffa49e3755dc961bf6caba653c5dd5caae7d5f873b49e8a0f562a6785350252ce1adb8a2f8da460134063e1e55482692896497878f051322c20dd1d74ef31279710ebd97b0c06ec8d0c505f902cd556780e9187b671472a45fe6b5a6a0370c51c8cf06dca6b1392a516ccb8ad84bb4abad7b6008418f43b9f40e77d7af2b95c458d772df8316038ad69d17b78e0c37d0e082f8b912ed2c1ea882544a2851b3ed47f5f5af9a4e61d25acc6c1d07d4c6e96e4d1644de2a55d4d4c8e0c67af0b5b8b2c216710ce2591f806897f8d20da245d357a91d0cfdad8e2459ad5c9af51e6fd6ca2c33ab2544f1c9de74f57d46fb68a28a954387d3aaf8621f91b4f64dfca4674a5fd054740607ab8396c65f4de902508a7dd9896ad4a36e9a7d553b6bed6c58d47caeb4858c182e8f5febe8831099437e41b96d2c63bd4bf0d2d83b937c41f24046f7b945ad43b0d94df669169d48f5e59fb4a6a335e2fe3fe8067d9963bb5d7d914f86fc2907bd0873a4c8752c4136d00f59210b294e2a194cc7cce956437a74f536f604413f8de40a29c0be8bf36f59c68ced936888d2b9aba93c0644605b52edc9f651c2d81d7f6bc2fdc040bafe9a6b29df6687b4182b5973c116d131bd078c9d649d35dd5799161bb082f786c87861f05e31d35bc34bd6fc419bcd682481168992678fbe4b402bec0df34702e8f313a7cb87eb1173696089c455781676622e589f20ced12e28e46a60a5451f79609a804fcf63238c3fa7c10f08c732e79ede84e7b3f57195b8dd2aaa276baa747b6130eeedf0804ce8c17ca158b70359e4336c31fea1517acc5954774d8ce8e0f35f2c809ef0d1a25f75fc34be940cd537b61d2211b43c466c73199281a69c0e5bb8881a32249e3d540d06debd12b245698a88b713d8dfcf6af4ac3464d6d23943ae3b1fb586186337f1c60dc65884416f895c4e961a0168cc3e09a7bec1922bd75f8b578cdbbd572aa2286f08e86295cc4016c58297ae2ec882bc16a40d3eb9d3eba9252746ac80c5a28fb81955c4ca7325cbe39187c7f06f2dee13bb288d2574dbe31ab8d23af1fa336f2bf29a32d7c3154c269ea1f79971842fcbe39fafe4d4e663c417c933fd0d6abd887cb7147f73a5ded481f87798fdb090d76c293a1c5f1c2979561c2367b7d854e793f467a68ff46bb92156bd683b52370fb1d865e1e416349f4331ba630c2fba12a1a4a7766b810c84c8111d9e0ef3e8febe059e9f1e08b7e328761909f83b8222905ceff57be0ae9032f09cb3fa6f1a5822a11e6586dd9c41bf5461fff2367deff3efeba88c0de1d9d512945e1cee273f3baea53e92d0cbd4b4b01d67a39fd3b0c55203f6ce1eeb0ef20c6615ba4f5b69d22d366b55dfd07c39c556c383c248a74e914683c2404fa64405acd404f837862020f56435fbd09aabdb7d40ae66b17b5848e031fb060ca50bacd702600c3fcc3d607cfd61162a437a5d1e3dbd44b7da0693d9c15b29665bb4d0d62b207f4e4ae98b100e9a7936a2bf5f0f993f9687b36d0c721f6571b189263d02f10bfbe25bee5839445dffd4fc5ff3d0e20335c9e57de5a1f607e88a287210689bc122dcddbcebcf577323f405fb8ee5d8041fc84e28fd1bb0fb8673be988dc61b7f24bbf567ba63451e58bbfe81efe808575ee75bc409ada29dd862bd681746df9cdecd76eaa15bc920b1ffd9d89fe1b23009d064a0f37fe405e32d6a9710ee0cd660fdca17819cd3217ddf602e76a3efac456e74130187ba583d9d329184f5f6b7c88ae0a54d0d073e5293a1995722ff8d3e9fb77fd00c0584e9b479dd13491ea3ef0d8f5781b5c02bce2da96bc6704cce27601fce8011ce5dd65b2be09d7adaa07ccb18100c62c26ff12bf8e902f57809cd2c97a9aa62a8e6c5984ea2a0bf12077ff5b42d8fe4daa74c39236e4b034c41cc0a149b6e6a077b7cf9d6fc45216a1f3b70ac035b4d9e1ce44e86a73086fa6015346d96094433aa492d7b085e88e103e99cc45bdf9d9cfb51e535577694fb751326d0e224fc174e6d450066c84b89a4e48b8a1bfaef8d27f634458e84e651194ec148c6ec2a15b7cf7af79302961637cf8b536f4b433095bd848f68a6fe4fa40f0d4bad10f8e3dd761ecb7f285c742819cd72b73d3a7f1aa22e2c88a91aefe4ac5a360808e519e887c8c7cf671e2399db3ca1d796a36df9ebf071c3d3b5e999b8acc4aade8b2814083eb767065ebbcdcdf6680f8ff4d55151ed6bb4d21a8b38003bbf2b918e714327ed798adde80e49afe2af7fd76d089d3de97d097872f4666530c2bcfd941b3a109c572824e6474e14d2783d431fdac0baea42898d6c3aa73fb55d40df1e82db5494e69e18af5100a9b15e36335c21c08966c55d28e048feec2bf8fc433f26e070b5c38ec10d3fbc936c0a492c1d72004bdfc0138b38b3430b9b15f84cc1aba74dd80f562370ce7624bbaec71005692db30170506b7f34eaabe8ed883b4712031bd06804d9ac889d1f452f8d09a6488c4142c622ee7c8b9dfe44bfb41d62a736a0734c9b35cc09e9ff205ee1f39bed1ba535482141e98cc29ec345a55d7739982ed7216f38d5844c74de9851c0255e60aa0e373df7eefeac473b92cb10ad4be8410c9d24bc3aacfa765c4a70ea5af5759972e24344515366b9d86e65bbd89f98805dbaa49847f210acb39f011a9b4fc6a25e5e4b24ef28c71d9f000cd21d2c251921956dc0986c298e57d3480c818891d0cdbdeae9a80bdb7a964f9739e646a0975a01ca08ca12990c02ac90d8db7e7f1286c9ee22632916ee0381fb7e3d3836bd07725a1d1c314f7aaf25e6fde438660000271a7b279ffa60f8196b33826b6268252ca96017f0fddc79b83d50a9be558a3649ae166f9ceb8bb90fb26c786ccdd8e172561656ea05ef49c65dd1d22d9726b9a754e74a8056f0dc14d551ac9cc93d56e17805d1119fd22b527ddf927e55f183605508f167a4f6f6bb0f5baddb09396e361af01b06fbce19d18421fce0c2ccfffe50eca74e3d3dcb63bfbb793c7c4f030d03c2ddc1faab5a9448d30596ece88f458d8630f7255bdd9c04dce79d10bc70e123e0f0812ea3437079893cf6179eb7910e08c7fc2b8260be29c9bd143a20333562e4c3d13c5222d4e3f5140bcf24d98b4c3f79b1a4767e9605843be7e2dabb3e73181fb07ec742e51011cfb738f0742fe7a6f2ed97711cb68da3675ccd46d4f4f21a001271758360d27cf449ac36531b823918bfae6347ebae05bbc4fc97c766512f69cf070ddccdcebcc8c9a5e086a005157520d7288f1cdcd0d227564fa29585dbd963df69506bf5a77643b546654e187f9a62a8e81c914a8deab3178bcdc6e3fdaa54d379e13d56e3fdb15cc679885210707f9d839d147d1532704ec0914be996361ee22415849154a1ad787df4485e35011c207e21efcdf6d6b3e31152d6591e5c0ce137ce7ccc8903f55da2e53b68e5208d658ca45deaef862720e07f8ab9daa123719764a139ea04bc3d10c28d39a41ef031c2e2602e8f85fb3fe1cda9f263b44318df00de11d60aeba3ffba7e34c63cc2f1e738ad7ddd8b46d770cdaaa2435386c862074de366848b6af492a285e61cb01523baad6f599dab39998e18a85df972ed5e1dc89ecea5e1b730ffe72bfa66d738ed4c52427323ac77d9b938e5481e72e2e2d262ca6138749ee4fd16fac3c0243fa7893969164af1fdd5997d2ba3c79432ca2ae240b9112daebf6a564dfe34933852e125630eb7b15dd0f299d65013980b103e2fea25f6cf95135d61600944f0a3c8c465d16fb39900ea7d8149318efe3767b10a83c89d93fffff2ebf6183229ac71be95e5b28b2e7f05f38103a4d7f05f9e15e3c0556b0ae44e7280c7b55ed283174d58fc67c084153f9b4d8eb62ce3710615e3e26e6e96fd97fda762b07ee321cbcfe8644ad52fccb5e4f4e0486e861227f6821c4220ad9aa79ef8ae0cc91f4a693cb14c97bc660c7d4b2cd5fd7bdfeb26f1447eb2241bf4eaf1a6dc0d97d218112640ddf5e2def11fb159d040c451c205711f4d39c371d26440b04f89b83ea881293a959a535a3c6508afe7c5e46c263d6e2a1c75e1c6bee2ad361413ba9913749557f426f8e534a5ee6f83a44d4c98141c044f641c0e083fe744624fb45893ef8d7c77ab6239ad6d98ee668552e9fdcce04d7e1272d9eef56756317d4bff7aa7792cd68605171c5b78571dd9fbf24e84ddf2d8632dc415a13b2ccc65808995c7a45d7cacb09964be37ab39fd2ea193b99c10c5fbe23e3ff363d5393ef872af8e7d22df8d78db765899ce376c5fa471670bc864cf2801c580c6ca20aac8c4c917fadf0fb597327b445832e4afba282d5f0cefdf6eae09efa65973ef974f67f701ec18a6a7b9fba576915c7ade8aa29c10108f2c0d27327d738c0516e11d69d2d4b238b41b7254ccbbebb34b35d0eb6abdae6002951819b7b7aefa7c739912071dfacb06afbb4aecf6cd5909e8c3c0a4d869879da6c1f0a2a69126cd151b3de7476ae6cec11897f198b53d227f96def0643bce205f489d763e3d9835b81f2c778d8864fff6c3dbd597992676398cb9d01e9a9bc5ebe3b17c0fc196d90d001d7d98d45ac0de06e4344b3f5f9c5c6d2429702e88612c22f315ff297cc1265073dc486c9ccf0ecc9ef538c9e08748aa037d67b0c578e2c6629ce670d4aea467d3c2c8c93ac88dd7128dcb5cbb2bc911d276206a267de70ec978025b9514e26b08217788973f26d84083ae1c6c71272fa79466c66aeab0690f939c159e596d5be5556b76110b1e4360d79be1a7b7f0815b5585a9a4bd1497034cc57e3c284cf38acc2124f427e25fcfaad6e74f700f930e970e647841e802656d32514b728b44db751bda3894279b31be56c0fb01f8a59461f57c981813144ad50504350f3b389ddace2160c78f7596bcbd188448808882308b82ac7b8651f1fbf542428028c5b3b0239af1f6f069b26e8725a59ce488b657249247e644de66b7b78c18cebd9bbc490bcc8f69507a7293e91feef5462bcf8e7c0d4bff514dea73cb63422cf0ee745e04618c2474daca8cff31d563ba70154f0331b3ed2c26bc734ce852e407baf925ad2831d7e7fe02e7ba76a114f48f5a1515f59b633b47567c46ed91bfb5e13202c24976323874383b97a9b6d2f4bdd7298758a5700708e2159a2f30cf2cf83d32d8800b7e1ffb060b08fbad512a8bec419b26be6e4129b42826f03c39fe4bdd30b760dbc2400ed66fbaeaf183897ca8d10608bf4efcd4585193ba51a801ff14994dad28d4d5778f88aba05afd5deaa79cfa25fd36244011dd7358562d527e58c5689947cc607ac07953dde22ccebc41a3479bcd588fb9b2a06c2fb39f5138d9113fdedb01bda80476edec742dc2ffa27f5b27211c93db38ce969bdff0f4d68d0b1df196b199e1fa1c01179d19616279836aa78890d8ca4b6179e9dc07aa793ef19b803e2691666285003c0909a12452c4828b1aea118458973083d12a0d3769385c518b7064d2c0bc652df9cd7694071ba3f544a6de08e582d1f54133fd364814032858475f8fe242bdfb413f9bbc30734ccfe870dfe847eaf35c92ba084cc076643e27227b9b7086cb693e82aa0f7bcc2cf4643995e760856b2a7ac6212fd80eb9312f65c91a59708f0135076488114b6eeca2fd73c1c580eaf849714f449cad4ff3a14fcc0cef05496cf87608835fd3487b4352ad941a9868bf20663f1bbc1f929688a6a0e2f50297d890d9dbb70ee8776d63949f6d242c7346d3c0a03e02aa51ffd8f2df871da17d6569df6aa67fac8249631973a777e57c11d7d052f8f67ee27445bfeb5de8bcc72c11a0b5047d808964f433ec58af74e8e5b3682d886f3e75233f0929aaa74535415d6c4279f4439493b79dbad479b76cd598784ab2f90a21c5c0905a6193f29ddc701af9abedb00142d10264bc9109295f835ff2e98000b4990e81ba9b6658acdee9a16112c57bb4b40b0d8dcbe4b5c83784539f4267db18a6610eb5d1688ee0ad3be696c79b24460b93cdc9d4622bfada834d9a9b2bd5bacbbf5af0a345d3856ec486a979329b6450acd7644b07f5b7ee9e89ee58f24fc18726b8cbf546095612cae25e5c2a6df8e2ac128a244e6080bff2a5efc67e9427facd9d547fb3b0c31cda3dbd4bee73ad82c955aec89effaca113aef14ad2ae72e6576c853a524f740b2e53878637ddeef9628c67ba8c9af7de3654a7eaaae44fa17cd9d9f8aff40195368037e5044cdd2d483f2f265ff0c1a4c1ac86acd872d0ee872136b7090e9669b2ee2037d4870dbb0187f14bbb45077fcdc434d74d366741e9e0621225f1ed81b8acf6248286fcfe2298c0582672b12d77f136fa825e273f9f87a9bde1ad27fffb49cc0eafc8d6dc0c2a16ef954849ddbcbb91f23fb8af625bc52e192d28333c7884d92b43d923afd2eaca480140a0aa681dcdc044d8c6795a890627f3a208d97ef2e5f670bb9120c0fd4381e8f1faef127a2279491dda5498ca86ec78c3ed19b58ef984fd8e60b420d1ea93859b51813c3225d3ab3053dc428b73e8df1f9bcdae224b7f81e63cf282d9348707dbd2b0c2759a8889b4006a7f71b2e70eeb1313484adb65f213a3f225aeaeee768742b56671f2093fae36b2eb1aba694c8aefadf7e1c16d6b23ad9b472b77c6141b9ad39cbbf535b2b3b10d6f0fb1aee0901c4ba372664a506f808978ca48e7d753833f813e750c178e4b0d0642ade373a13126c339d9b3fd5b73c473118d42daebd0d1ebe6b14ebb35c7460c6aab6306f2f957031921b8a132fded6bd88ba335d0102230b5a05b8057e6d99827fa0fc3bc402f3bd9dad2553dcab5b93f66f1d87b8d7597be92ef69334d00a04cb1640de3950142f6b3bb7678601767c8a1627278a39aa1d40b81413a8d22a7993eba293999920cdde1783e61657e5e1835f5bbd22813f267db9973480f21392ab0aafbaa795680e91f1f7bec51faa5fde9a9d7aabf76ffcd733fd382f1bbec79438d986947e2f99303cdef63a8e1b11f652bbbdbea52217ab78b484654b322ba7ebbe44d42d09912eb1b035df9dafe17b71e9b9620e025990d17b7b436b9a8f36c420cc3e088b449f23fc5f012eb02534357e93106766b103de54b8212b2bc3adc997dfdf7d2a6cf375b4864e3587bd05b3121c60dab72eb9afa162c881181b1a86bbb0143ad99a4f9c52dced949a255fbee89203a3e71e9a83de8ffd389de56d87e5b7ef62f3fd6e1ed47122a07f6907d0d75f5d609dcbbbdf29ccb1faa0c2465633e6b3c482bad2459196b4677404d52d09cdb3bc44c0f8d280a9d89d92750882f3bab5fe81c0754a2927e3480ec7e8eb440d3717d29b54a793b5e2b027e4708471dbb32bdb09a2af26910c2fe73872227891e8962d8b1472d078580294f4a3c9136837a3ee4014c48be18a81e931ca4a3a10fa3fdac6c805e7dc8521629a3ad10ef5cc2824eadb916ed8ac8345db2f5bb102526bbb5eb981211f5a94b850bfe75eb958441ff16d67aa5ba2b49d0eab5588a7b00d291718d01bcdf6beba395a8a23059adcbfa55f1b0b650bf1675610b53bae23ff8a87348a97f04d098cb7da0f03e5ed1d1fdc84cf46d7d4f26a40ef9b4744d0e54c39c0518c48dd55cf5c132d43c522e2d3b94e92241e9e789e0378ab884e6ebf295c0879edafbe8d1e9625314133dbf31897db6e3245c5079e684337444deb6175b27034bd51dfbd490132d2757483ca17a9a1dfe1e007058f44301d619349f259be697cc4efe5b27af2f1279ee1fe6fb6a8c7d52ae166d7ce4fd8278239481cd68d0d42e844d111c51cfdd2a9413836ca37a9257eb57972c0159b22bfe388f36a9f7801ffbed313b67d3e863b8771bf10c21acc513fd0ac989103df542f2a41cdab35ec9e838cbb292bd732b6bfd73adce7b10c63dea531c05fd04d9a892102078c8d91290cc74d102562cf743538926caa75a490547018945224e837dad39cc757082f154c49e5d6f25ba4c0bd00fec697fea733631e56dc98533d49dc374be36a2aad6796facf65d1d11aac4dbf4e3740869f59e30fea57a8e764b2c1330bd13c53b39d59db5cf514282267451bb62590e99a670d4701ce8e696bbd5a637405ad3a5c980215afb927ed6d3952e020d3403d7b8d2f13e73e402cdd9dbcdbce06556a0c4c0f96a20388ec5167bdacd4d9449397d49c143f683c1bd61f7e17972ed1ade76dd576b85d697c7af121309977c5bc63be09d673b3a6f5ef8348bdcf082aad4b8d143f61b4259c1ffa74e166110b25d75a49a40f01fafb05e35f64c838186735fd6227e51079994c8eb807e0f113eb1d4ce4f81699edbbf98fa16255024f9d7c0838e15eb17ef821c7eb5d710985024382e6dcece1471d9e3693da7ea7f7a8e8a3ec4ac30bff11095ef59be1f6d9f0b2ce9ce9050c2a120e0c96d73ba5749b4975e7cb1f7ff1c377eea2578492910a683540a3e887f263e9573fd4e07990f3477e3b35bebda0441ef1de6011e46bd5052a06ad50f993e98826a0609fd171440408a418c14c1076857c2fa53c48c3892d2d38b6ab7e2dd704e9cbd7f63c679684d506fe9e5676eb89ef598f8c5261fc6d7c770139d46954ca9bb1c4c681552894ef50c6943cc5c5efb11bbb4b198d59c59544374363726b2d2eecd13a3a45ff0e548451203331269791dad09f80e63e532d1ea7090fc3053c0be96a2dc8d8f40b9d9884679656fa2ef7a21d41f81ae0ce8ff162c0e46ba93464cd227069b4c16fc823e3b85bc5fa075d2677ce532efc8cdf0567532bc75ec134ea9a9db03a7e27e05505ccd72fc0e42ffe7b79942257d234946bee4c9e3e37df2541194ff578d7c98858ab1eb551a9330c8cf1d4709cbaaefde8ffad81b4093871086f1bb0ee177e8e4fb51557ca17d6c0226eb32dcbde575f5837069fefb68af7fe866cd4bbbbd01f4a43e28a3923cda16487ad9afe8718c61c697f2e0f48a315494f8f8e43ffc496b67669d6a6ee8bb1e2b7195b204df91ee68b27a2c86a33feedf52a5c5ef7624fe0a2a5c14f144afa019848518ce4b5b70854fd3c17fc8a29ca3fb58692bbead3310c6a0ff6c0f6a9116b186f3e29e6fc449720e08d1bb1a78d5dcea9c518eae701ac52ce01f0f3301bc80be5e1eb2d9f305e97b426992b19e129a4115c8616853b8e26dd5e3c02ac3b0ac68895107555759e2a667f7a04bd44bcd1c284e288dc2e14fa73550a94e340e6d898baae436dc91a08c3c140552b620a3a685541765e48cd8b7a115f8be3f724e935915324979f7925177b51f5b52cee6eab231b7bcae3fad280bec5c18bc023b2018d7d464eaba9c4cbc91530c227fadcaf92ef04aae2751277bd582795b8d862b5e735b439d0312029b1bcc433860e964e424a6898411b2b30ebfd734ce2df2e2075810b878b791461ccc9c997e43f8f889272dc9b0927a155ad7f9b2b9ac645a396f6a6f1dd02990f66f19a6146b17e89c4cd577c327d62f7a5f65a7863750b6ada614884cd69d68bef8edc69cee3bc7ec86960679ce26bfe8c3305cd02b1e2546b01e83ae9b5ed5aa3b0f9fe9692443f4249696a3070015daeeebf6bb6c3dfe2e6499eb5789a8fc44c41bcb6171f8b3e14c4d5328e9438d5c8488dac892793bfa0204668ef5564f4d89da4a6261553085de4715cb4bb25864205570416dc569dd03570096bcce2246a6d733712958fbd6ce0966583e72c61122bbcc227e0df0382afb93f0431b6c63022cdedcb814abc68ecbcde610569642bbdbb61b37382262d64a440f30b0593086864f07407c422f3d4717b19d44981046496a4a34bb0174f0d457989a649691b0ef1ca0b90e7b96142b933e2b4bb1707047219919803d22af2d521cc1d8caeefdce1819026870bb6c6cd5d66ef214134933113412e0724f81c2c1434a14c61cb75c9a5ade67fdd88c37bb418f6bb55e4ccc3834239b681666d11bbcb40fccd376e89c8059a3d2cb97523c5fba8d92d39d08b64eeacc07131474f8ea275e7b370ed7c2545021575c591432ba8c80e950f6aab70cdc76298e0b54aeaaefdd01202e7875453a6e093c2be80c9be5bc81093971ce072269bc2334393d65ffd30b23c2e7006744dd0f030854485802801949636ac09632387c3795e5cc9a698b2cbd86163371c9dd3503be2bec1a7204ab0cd73197c6d297f258fd7b8132c6bd615ee545cb2fd8fefe2121be8bfaf95cb467e4650020d42d30f9c0d50e51d5ce3bdc5364e78f634e4b311bf07ce809a29254d025e84cbfac6e79993ab429bd8bbd5f228d6361121fcc1029c9e2283254e06176b42b8f86af9a0f28ea608a6d5b3069e8caf4c5883b96a255bb1cc4673ac1e96b6edc2a22052b12d775b687db3b88295035c163fddda9f9df2082db751c28617be5843a919d3352132e1b16a4fd100663a77e92cdfab75c9a64dfbf5bdf4f0e25f64eb3f74d34e5760890d02214c5a4dabb3be977383789b7ae4c084239411778cf54ee3f1b9dd56875b32ec8282f4210634245160db29ee9921e062696050f33b5f4f2f98ed934322c254633eb89d18db817d0dd61e387ffab23314e1e2ecb1b3183dfedd8f2b9f35ccf2d3bc457761adb5e0c894e8826c04224943a67b78dd6faeb7b36945a6033ea2889d037ca95b5985f3912d69f65755576d499a04e589c05f6cfee0a973dafd7672a2ac6fdca9b82b41b3e9d3790df6f8aa644fe95af6c15b4b44cec3666007ef3665374c8f28c4a2ea71d9d71a0eb7b7f62459da2d1348222f37f8bef1c9b809cfe74632206eb507123871136a978ba46ab7cfd06709e52358f35d7228e6ba51e35717daac7c94520bcaec19fdf6f87bc3b962b89c3bff19621937128a30b925773c26de2366b67823b4f5abbe8c6e16a385cb68c5824cc68f8fd9b6f5b982d5371913814a1f56d0bfa6c6f3bdcf1f4807ba5c77dd4ccace9311e6702ac56598a81698399f1e7521bf00b9597d175ef953dd756f28664c37a66ada26f001283c161d4e0cce8eec3fc6bb501fca2ca83924ca9e0aa82f31571564c62814e91060ec85276820d9f34993537fd9846f9b6b056fdc212b90d9da00182679301cc225f3aa0b1b76f98e12792d195e93489e192a2ed8128741c933d834db4104ce27679d3f9073ea94f31de33a0b86fcc7ed740bcffca918d792f1dcfd1908b40a06d824ba79919779d04eb7fb51ac83a55649bb70f1555de5c001b00a26ecd9e41f11ed57734834ecad1ebf6a92a107f951e2fa6afdbdc36a72c3c52fa45032b34f83a6d77fb9a71077b34636ade8de96e47ec2e63b3dea087581377a42620377cd747bbf50530296c109f1d23bd0eb043b20f945349e67c10bab19ffccbc6286bf9d43361027af1425e5f44dbc006516b90dde6bc55817b7ef72f76903a89598d269476b3adfbe4da1493760a48cedbc2a5dc028d8d00625c98ff03162fc98ec9d3c4311f47a745114c5d1617bb084377abe0a49d6fd08444ea76b3cc13332df97025617ff1e5dc0aa3250aef089541c5a401ef13e277f0ccac951b44cac3568851a92cb2df64fb93137dc972b997f5bc954672aa1c64fdbc7c6d75a190d2f99f2839add99b7a63533b5dfd5bd9e7c0112cbdadb202f5591c61b88be12ecdbffb129a9bd385d44a7c77243d53a2f5a2b783d236f770bf7d4fb0acdbbc58053100e9c7326035eaa7c71de353e60d0a071a8ff54d6d6473188605633e088a217dadc8e5b12bdc1f19915120fa34f51bbae7cd293f266e6092898823f7d6bf3775e2540d1c5a2742714a78134155bdb18d4631407f1a5ca6c5acdb80f72aae5415cee2ec9f5449a42f90dbf24dd60b03b0fcaecf834824dd9fa28e9c26ac99f5b522c6d11636f071636d28003c102d6f2925ef70f0142757066419ea7923b4e6c4f195576b50dcb6abd79af6fe0736d531303034bf53e3794223acfcc488fd5e3fbe26258faba4cf5f22561e074359d4516bd983a5b4f879348ee79f54000f963bbb73c61040b24598ce01e0a60979ff143961d8038bf23820b48479f6ebd27d1f90f31910fd3b94beaea8b6a650bced61236f9c5ef090d13d6c9f42dc30b88d2a319f99cce1d8f148042d27d34d9cae668c6367b62123585767c5ea2d51f01cf98e0e292274afa818d3c140ac40dced22cfb3b4c1194cddd0977ab128a4ec29cdb3b1385b1aa050487c94a6e51736ebc7b8cf02a2b524e226946691f4be1a4b480848fa1a837cc8f7eee2ea1fd7eeca78e71fb39dbdb8889cf6aea4ffde43b06b364504dcdad4b9a290d8e1c4463b931ccdd259cbc56dec4cdb7bf3eea352190b277db98ca136a3580c51df27beabc97635df12fa62783324c9a688699c714c35540394c829d177c6fae03c2b0804e138fd6a6840a2d94de55a77ce380ed6e29133536b8c233cb3ef5e6fd03c5c891caac6094b50cdb53ae3198134f34f601e6f684a4e5946b0858ed810c3fcb656c592c9eaf8fe658225ecf8593518c861631795da19404624edb6e6c0d1bc87530520e1e4289d20214713eb0dfab6cd7d35c41aab0a1e16e1b54cb7a7b75e11afaf65d7b3765d12ab6c68db74afff7cce7427ebb97cbdcfad1dda78bd0bca9f449f7eef4bd04eb1f9ee0e1a5603a056f235fd3f2dc9d0f03ed1c6f29fdba05069ebf6688ee6d71fa19c1b33f15e7f996699802658deec89a49788cd6fcb53a138d43f1cd95af864acca08d70a74abfa4e9b19f2dc50bb47df87328f69b9c786a903fc2136298187bede3af6a43b95918139c82f3f9fdbe0171aa1c4e5517ac9cddda73ce88daedb6154cf84334a2d601358b2f84b753473e2ffb57f3dec7b247a75366f4bc6e0fd40a854694969a41ebe949e87be81cf22abc0d2bfbf35475d4fad6b4827b00a62acdc2268c7362eee5a265be14bd821b945ee518745873c8468521c1275a7823a1805cada9cf67adf0076bf29f82cce6e0bf2e100bb4f18f221042dbd39555b7cabaf547a1fbb16dfe4c08379a5ddffeee53578822bd50d32ff831e76af7f51205ebdd1a9fe815ea0b6d3930c299c81b6641f115f09f98af0f888afa34bc9807ec9021398cc8259e55fd15d02482ac84c3329dac2478ca857dafbe54e596594117dd95c2cc000d7ea314316cd2661a661625e2ae15e88dd2b2e75f480c866a61b596af6cefd6b850c6585ea6348d2fea32f2d7a9ecfda71cfc6d502e4aaa98ca050bdf2390082d8877d4b0d290ef7279a91f905c94f8c4fef0bdbd8830d649f960b2ab21975ea2ff038b4d8183f07d7f9870f5368f1ad4ef9da8d3d301153e1cc26da420092cc0129eda11fdff39fa6c9ad4bc580adac1977ded6f3f4e9bf40503a2edb3eb2ce22eb1d44e8812712ac5ff26aabf1fceeee055cf6a2abb96e9c54e3f81e5c8f8c0dc7312d3f3331a87c2fa05f5a403bbf308e0dc0816e18fa9c88c2f69647ddb31077102b7cb13627de18d88ab441466a0875742252eb95144c002c76c047eb92a258230d60ae96c625f00b4f20ed38b75c1246d925796b0308fcd95aa3241253b4336a961499eba60bca850f396ef2340fb426d57af57c11f3d95049d8b11d7b2843324d024514599e0c37c7031f58e8aceb958a7efec1b68337b426714acc38f42b3be755ec5dc78a457f69faded5fcd58c6472c3bfc465ba3d159af351256b256a72d675bc436538d085f5124681b57667bc3f26afa44b305d4ab74e7f448961e0c8e28baedf79d27a3a19ac4a6397b7d5e096a94c7da234b3cf2dc50829c57d0106f75e41d7e707a435851805c6acb90901d772a0478db718378dd4e7f2de480fd53f1a9ca2ec3fd012529d887818eeaeeeb3f4be26f450a029e4f5feeb96cf223b5c51cfd53b65543e146f65f0bf26f4659c789d0882c740f846dabec4d91572b74ea8074da5ef5f639df10af3c9c8ed723cb49531b109a816a6065a4787e1c43b647ff85d75ef7ee6924c96b1cfdc03d692b84853c629fcdb64d6db22e1723dfa87cd27fcaeb62b40bc06fab4d1b098b8f3959c4399f285d507076696dfa46ab49787fa643b75f9a360e0ee97162e6f286a0833772ca72db6236b4789e020d1c210e683e9a5132338760a9891c4f1c388b4375e718ab2716d07bb63e57d47c7a407edb7802319b5e27ad7d43dc611ec85598173c462c083ec3adb7da37c4c469d6d184ba933f813cdb17ea4797a72a9ee05eab24d973601ce0d0818bca1709d0408bd3facb0dbee2d81a173acd8ad8c7dce18bd4584c3d5dc28585ce8ac6a5994cf64661cd499ac909df5ab3af5770de1e4ca233771570c8482225475f59bde4ac6946f44ae050a4cfe98f522ef8222837034f01959ff4832ab02d692e40284f03a852368d5159b5d24c6dcc6890c64acfb3e0348456ebd520ba78185ecfbec75977b3489f435031119b70505808c84aee9d757158ebea7dc59add011d2406e6efe952ebbd8b6343b4e80526adc4af57ebb133b5b48357a9e6c5cad100b358d69f7ed1b9c66bc635bbd263ea34201c36d55aff787a76f346b34dfa1b79d0658e6fff0f150486ceed26d65bbe0be8353db430eac8b80ff388daecdad3d11d1a822d86361d326bbb004e5d0a0a8fcd668f08dbb505474d3c63425795193e7308a2be446e063b7f50f8236fbe7ebf1e717e9d67e2b80d28bae0badf2c2ca3a3cff9cc2b47241902ed0ea61fd7bcd0a012318bd60b34db210785c4045c9471ee265155af3fff3d73a1c4d8e8b8110876f92d6a7238f657b3f23d9aef66fe86b37e168a03594ca5529ad00c1cbc1b0fe0f79989b22756b5750ab95d110ae0a4461c1cb6e40d3aaccdd4e052f4f9de3220bc8c6f2ec28d3d6f016cedc2012fabf4260cebd0adf14d3f851254dea6ed3da66bfd07399b50b739058ed27aa2fb2c1c4644d43b2f5215baa408c1c70ec1b542163c631a80b59dac7a5dce9a6dc587b9a9864d7ed278c2ac7b8a8744155529d53ccd047edc30bd21475317ff3ed2b44468a100cd631e250225ae5aa0e7cfad5af2acefadbf930630f38406af3cd0b997227bdff8a80c26be3baf67779f8a21a3d534a8f31844a9279bce8bc4cd5bb6622238570337966a7252c74f5e26f4d64c2e21d998c5ca6118fbfb5b9a0889281910157a5a5c97ab7dce15fd1dfb42fc1ade52f981d410d3a4159eca382365d59d4075a1e0cdc30ab61b1f2318761914068821bbe46f9030fefcc91eedfc1c0fd774c9bba4c94db8653c47ca392f0ae76a1406359e5ace96cbb286cbc3f36c4d13ec43f2308432b4a80a1ee3d56bdfbf28db3cf881cea62794e10d079def39f240de11fa1737ab2bd17c5ffc51aecab425f0bab2f383f66a31a1e259f2c495e8813b646e450f1ad7940b1e983257183e4910c061d37ec8b78267847a097827b75aab1d235b04de7a9c960658fe6bc28953e01eff577667686e2805a3724de3c207e36a14582dfcf6967b0917b50b4c10a79241b3f7c1b0efe3056f2265927ad3df1f0d53e4a5c92b48c50f4cff8361c9263302788a62caf2f963f5517c368a961fb3b29b65c98a8ba841e195cec651d70941df37e25bbc4ff1e056636daa28a7385509eb565c6169643d51aebb51a4d150a6077c72004faaacd7231f50edf012b42456ddc77de1da91e38a0f8a46469c34e7bcde8d22127c4ed1407bd2691f457ab3df85d3b8b836d1a30ce30f40cae9d6c2da577cb074d74c386b19b195ef70591f2e0dbcaac47090fd588de4bfec0174e9a1bebca0a83ecb972d0e6d0098d06f4d3e488c4a4e2b8fbada44855a97d65b0e104420905e58bdb14bcd7bf265030d65e09302313350fc6016d6dc0acd384e35807124ead5621dfb7b663122975b1e8a182d40964e41af624fe3f7d4baec0206d75f80f39c62ee23e3220fb4ffdc95a09224f35474d5426f3753868ee21f6ec457f046dc370046a55129e1ccf15f00f766d136cd205ff962497ed89b2e49e8e817edcd4aa004df72064d7f8e5bed4fbe403e66fec053f8aee1effec311b790cb9831f017523509737969c7f8fab20db770542e2f9dd7522b512b35e42d576432096687379db6776acbfdc3b62983afea15cbd529306493a10cced56891d59932ecae9816c11725e6b41b60bea00b5e7be727928a30ed8afc01a4a70728ff33597d771da8e64e50f9c5b08eae85cdc0269467e1f0ea1ddaebf4c28b50a8779b9680f762fad1f723a9a3edaf5a7ec4166dc09545e8d9929a81d0072afc1c36edbea0c15f573f4d0ea22fa56bd139abc3bb54df0c59c573a24fb88b52bf56710091b7b6afc5bba53ee6fc587b803c763d59ccfd1c41fb64395a7d0fd71640bfccc3cfb5a2891cd48bae09d036cf908d320fce5e1db40ffcd8c03f8503317050432731df1111f8a58d91f0afd4012b6562b2723106c01865c781480df8b4a238ef47adcad1bdc5b10fec2b0f1476e8df6dcd7e623aa4678c063e66f33966636acf7f195f76f3ce0210a2f938db9e78199b69dae48af23a35c3015b0ad7f57fe16e0e1e275b2043b450788a033649ae0da632c827e29f6a164bca5577a7bd2b8b15855c5d6c5613fba41b421936ee01fc30f94c9ddc599220914b4764cafd59c07d1555e0d4cac6c8758082f1a581c5e6af269e157e9c84d65b91ba46fe29f544fb63176fdf47d05f34814a65d0e73ba5a5de8b7c19fd2a5935a892c12fead3cb2ff58dd83c5f42adda0c38fdc6281630f1cb36c06d05dfe4265e38c6b94064684b92f46d510bb84d13ac68e969ccfc8d352f867ae1dacd643a41add45ec83fe0fd6eac1d59e2dd1d8c8b363b52be7f79ff431abc18ebfa5e82423a0b6ca59d1a49713b9adde650e5f38ed43047b8b14c49e4cd1c037744167229c4939315d1aa02646a1199b1244915c52d79be038fe0d5bf565235e471d97649d1817edc9a718f4c699d53d09cef907ec627cc624329907baf5d4c7c2595425ee5087bdebcda11d0a0102809d8344824952f8ae855f1d95ab7453032707c4de39678292587a1d8417b25a08c918b34888f82274357e2bbf410975cebea52d5297fcd0e8fe0009a39748c84853e1fe4d2a2fc7f1edef4c7b0edde7c532c2c3d1c977d327dfe2d1066ff9acca0b2c3d33447c8bcea1455dc83d8f1fd02e5c1fa71d7dbb16a6e2b22aae4d680e82979e09e918ee897aea0ec61f6a20519bc652230d436e9f1f2a22e5698c542c213f5a7a31e51aa2d92332ba93cf2d415946497659d9cec1112ed595d8c5a82135fa93d10e3d8f3dc90a77bab21cf6a3e1ed91b55c9e0632bbc2f73f54dcb08de7002d3e606ac727c50b49b5f69fb1953cc78499c8f483dfb427a4ace37c3e3ccd385e0a5737a7af1301899ab1b83329c17366bb171f0246857a2d6082990b4bbac7755c2be1ffd7b368e45ffe60f542d35d178285c49b99728896e46fa765f7fbdb048a7498521f752c82d74b15f34da5515e29b74ba33a3f44a3ef60326b1641345ee2bcde608f52b34c0ac8868f883c88bcb8c473f76380fb6afcb0d7fd757c1a215e28c398821ede67787314afe30ef5cd174b05b678f434b3e11166d46312dd34f683cf4149a92f0e7b67bada641c1dac750ed1bb55c4b55e04291a00cb6ab7b49edc460bb194493b24b1519db6316ccf3d6a1f0aa1bd953834770201107b1b2d87678a2827495a03f165f1ef89734c005ce81e27d4bb6f5f906b7e59dfa732749260877883c6c96c1c6c6c825b4b0a66ba432a10b4c93dfc4b3c5a0248eab49997894829982cd5bcabe3fa8616736a7d7afa5a9ab6d788410ab6fce605a771cbc735d763abf79a4375106b2bb571257ba13e737133595100be4800661d92ef077b20a5f68472011c7539df4126223a1d07d94ca5044fec35b1565e39bae884d107b6ee03005a6bd0826106eda65e396f6c2b46c7220dbacf5939531fec6fb8175602f0f1c76443ac9d163f52049f9c410a3d3bfd18f9b2f1298bd0a3b4ada5c76a96950a7479f53feed0c899dd3ec3975012d34c76ed034ce674bd8f2db37e2568ef9fd66c482e465d356bc739564f25f2282bacc42ca71a7aae81e63ea77dd5d4cba3b07f022dd5f9950b211e8bc8fba9ddfcef230ddf956f19447c2dee2ee31b088897591ba3bbebd3ec43e77d8343492df33aac62c4ddddc27ca7f53c732eb922865a6487a68ced5adb9a43d6dc67d1414860739e9ae00d8ae1ade71e991f81aff7c1e9be0ba490a9ae094e01e22e2588f6e8d18a65948beea50cc8035a6e1c2b642b0fa43810b940cc6021ba404f3459406e4c78f0ca0745bff80df33f53be62d5f6fc8bcfca371760670bb34df4d391b080d6bc13dead48cce13b636c73d043f923051a164481f81ddc6ac69097b709659017c38bccb4d44da65f8913f416d58ef6d5b3db679c19e9e857201fea5e66991f5d30e939eb38ddaacb8416de774177f3b36373407784c235922c2f9daf1b7bffc8b43c1028621ce2d49632286cffc941a666321dd37495eaed92d18d688a447a18637a46edf0706762a3214e8d92e7f24c6f22be4a11de6d2265dd13335e05518cd2a3d653818d3613455a720d9c05142f2aae7e3989f69659a6c57f16d952c2519817c1de536e616700f94af7898b57606054fe08be3d0fbfedd34ef617ea2a85e527fc74823fe7267ebdc4e6ee1100856226b1873717cdcdf4fec1381c42d330a536ccea36e6046c1e611c056465ec52857dec47c6aa1759078533b9f6be2c0533dc0217b061f08cbaf495a2e6a648ee80d69855a43ab6ad3d314881276395d8668c60e2158ca5aef6e08239a9587d6a6b6d25afcf3990b43291947aec82b66f865c75a4ad13114e4bd5847e5e418e91f379cce091507be577212b46ba0fa2a881f1f95bd7c38e7af807d9aff39a8641556d8ac62bac84262ce3109dc106e8c52389bb603317bdf2deb1ba39530b7fc40f170508a2cfb551ba95d315b0ac71a9a6775f427721ee6ef97fa280c71db017cf0e5918eecfa69fce0602e0e1bd7fb03a0f8fb8ce3955c7383bfa1a7b1e0a8d17dd24ac63fd6d86c6770ac4768b666798e27e3ef009910af4adfe9d482ba211bad02d98b10357721262ec6bf7c9f1926bcc0e4523001f7461ac98204880d882473945e5ebd2c526ec13f4ce342bd2c7d4f2e662eea7a9ad068ac9714f2c689ab6de25c09dd1ad756c368fb48cc1381d999f7cc10b48618d1d14d5585247d84cec68d2b3d1631df8a7a44a88b08d7c202bbfce06a3e96689e5d7f03fe3dda6e0b034a2397fdea4f81a7c32977cfbca9058e443802884738c6019b10972da8871dbc23c9dbb22d4335d40bb74fa68bcfc4a3bdb12c2786a84bbd06936df0d999cd8d396732f5289810c3523b2aa09b2d5add1a5cdcbce716985e4f58eb144087ced88d8fc5f57c4f39d55f5b66bd06d31448d5058ad7a2fe0d97201f6dcad85f070ee6404d9c2d85998cc5c7cc72b034ff925e2069bf348c9a4b67c4945ccbc3a03e117baa7e7e5bea481a8b3e0631a2b53f8936d8cd72c94c5c53cebfb14f7f45bb20b7ac106530efcfe24f64861c1760f3f98a465c640b85535d33e901bedc02988839bc02119cc7ee7b0ab0b217e5b718d74486260c25c0a4cdc1b522f50146b65c75e210980be50192cefdd0e2c78830fe46b1c1b68f879c891e07f07c35f73f4d22266a6ec54c537cdb4814f0e538a1b9c3cd4ff82d5858f1a7f0f3f56e972ef71d1544c68259f06ddbf1070a0393b9e08754ba80962c79a9d5218e2cc9af737a51e1689f079889b7ff9a0c85906332d8b7f2d42a12118573fb6d9f00f0a4739084a10ebd60eb098408de30e2447cc3bbfe7d7a4ee6a7b4faa72985b085044447b2f73324f1cc2c2e61fe40f41040fb3295913ea368964ef22f0f50d902d9d03bcb39a49a2057596d0696b71869a59fa3c75c8291be56e2eabbba71f5abdf2d7a61283cc47f951af0a53adf4fa304d173ae85bfcf21866f1843977d2698432268ff5f1f23bef0942de2c1ed262b084fda76b281c65bd94f1d0d05a807a3bd5d603758304b91284b5cd2a8ce5dccfa52857f5112dd51f3cc4fb5a58e84941336bac6190dc9d0d290d0b91e263386d0ba32e70f0e56757af2d44aceb37aa6f1cb777ccc385375979017c0d1f738dab9d743c876f97903aa62786c18b99b28ba4171d7d008cf100f3e52b4715505bb71194f17a0fd553e8ce0b687a784beab31902de82f441a1cd6c1f4f504317d1dfa4a08ce37bb110f5316108a6032c41b36a1a885288c15b00fb17d2c3d63c287f1a4067a612124b6e346b38d31824a1c1c7ccdd5e5f94e4c65cf44737ff92a941d0f4a57e8fa87b73cd0b5a9167e0db026ff89566893d6caa5bc0c3d349c689006f63e03968072c4fd848b19efea43194b8d908655533d039e6eb3c3a6926f4a061474f06ca10994493737c87dfa1df5153b8c5873afd89f88bc8fdb65625349d2aa534067655b4ca49975b25b9eabf5b3137f6be8db02c824a27c60324ceee6fbaedf108b0d8b18be9eb58cdbc9e7a1076a3a3174176b67c87b8c1cff3afc323e7a177a2b6170c92bb833c984211ae761f062fdcd86c887494f2554bd3bf151a6a38071cf57ae4e6501e59ae51af8d071938863d944294cebc77e1867b7b1de236284b3d23fbec342fa5946fdcce8fe9b2a35da499c1248bb093d85df3d597423689381f199c534cfb2f0f9235253a92c8a7dc06e4dcb50b8929696f92a764d23e7c9db81678fb0b98dece25d34ba512b0cac03356981d90ab161e3bb34280ad775a80b8f971124bc85f474b4d9d2f55f6c35437d5e2cc384a644f13da4cc8ea240eb29e4126ccca0894ba71ebf0649331914092315c258f96165e3d225da005ae4dd90c727b5cd468ffd598ec508e5f05c6f73f2351fd95b660234c178b2fa115014d91c909fccf2227165161e47ebdee7bad1ee16c851430fbfef4fcd51d65b519ecda8260e16f64441f4e31419c04215124a1fcba76c61ffad7fe96069cd969edfe43f04f5cbb7b31e5d56de704baced9329c6a00ed489f6e6cd588bc1847979410e9b2b91e5d3fbe1527267cd267aa33dc4d2a9fe4fcf18e78e41590b600303eadcd3ed9d8ecd2ffb9eb2922902f2a050ae4676e454d28a049f929bffb1385fd738d8f35ea72717b8c879b1b64b5f1e2a23bbe6419cc4c8ecd892193f2505c3e077bb914a6c43b27b99a1c0cd0164c23425fc30caedf6e0a667c03985d47a28a334258100529b3f0cf4e0cdf5d47e8632f5e2d766900193abd91278c51dcd3210c44c3f20eb52be5f5e3bfb6889494b04ae473a19c2c5adc7ab672beffc896d5c1b4790cfdfc2a133a1e1b88f73b5906fb71331b43ae0252ef86038c48719a0f30473892a31bcbaa709cf6f709132518aea3dd782331866a0572222658a065f19497168c029245219fb473d4970f268ac7103fcdc232fddd5128894cf65bea8258eca1ed83bff33129050ccc5d8cb4001de695a0ea82878872866198bf2c7e324fc046112b4081ecc400d0e00db024a85cfdd8eae9d688cad693327cbbbdd80685da22a716f1fea9cad2313ce558bc65873aeb5b7407870afbe95e53e5574c24820b28f7db1eecb0fd45b9604e689aefe68b53af24ce5ff74eed39fc97a70de2add71cbce99c55500828705f200b3490f469941074e374bbeb13c44ebbf4ba9775defb702297d6beca20d0ba25db31ea65b093f08deba26cc43fce37a8655c5dbf425836a11d4aa8323c85a4d0b924b8ca29e7db6f167022bee31280d060382d07a9fd658d32feb4c463feb9f6608a20a0bc63d5535c75cf2972c189d7ebc4f342bca88f581db3e67001b974f32fd373d759b80d60b659faf6015691e4f1aa6ee91e3195274ddd65d269ab6b049670278016292d642c39d53c20ccbbcebc5104f079c072d2d34b246da2ed104674c394302b40d4118d0d472538f78c4ac46f88db1a87900878b456c2aae24cd24c20c5d84c925e27d00eaf8ed8fc02e8d9086db2527ac6c379208fbd8e2708c70e72ca45f3a0cf663327dfa1b1c4889a4bc1a6233e06573de2bd34ce91ba2e6c88a1ee3f18a99488d4c393f6d636c8768781623e3ef0db24229a5560f9b4dc1203677899fe6b3ba9c7e30c743447b047e2dcf0a4d4186f8417aa5f87de3666c8ea78a338a63c3da6d61445fc94d7783a770e436e945699b1589aa08d59420a16988628d100b3587b53fb1f2195f0b50e90e1a13e0a3fabcfeed4dc98e61b5f4d9a1e5e4a247e227886a3ccd9c8eb43a0b00f99301abf01f0cc39ba1720c788a866082f67501e1b2e6d15fbe1068c48b75e24800bdc4a269cb1e61885ddfd20d03a054556f33983440d89fc2f19137cf1830ca05d22329702aaf041b53223aff70f9f7968a14bfe761119316c8011459c7661aac61857c11b865aaba03d06a3584786db7e15a1c60e7db3240e427cd1c1469b5caf8c0870cfabdc16b9767e3fe144688c5ab83d35301f1c359d99fa3be0ad77778ae36ce4d2fa7dd7de0172dbb92d20df02f888295aec1848c9cb4d769623962ba0d55586d3fa6c9943982e2188e21c5f99eff9276d4b8cde486d4439e7466fe19a1c7416d3a462af4abee6a40a0d3a7ec364ad20eae4cd22bf07a18fd11cf12fa6811e6f5cb7455ec7658bb281e0082f31e1528861756898037d06cd168e8f09ca3c5060a1519459ec1597f69c565a168dbc1416268dc3b11990fd8eb2d8c37e318029bdaa375be459fb03a13d39dc726ad210e491f84476c82c13820548e1d30a1c6896fab29d5c58d94b3e4ab98ece6db0bb690b3e7a1b0d1cc77b38cc0a5a542773d699aef760b4886cb323df85040a2c914d420874b047163a28d69b248a989e2987c43d7ce3197a80711b3ccdc2bdad77858d98ef5fbe8800c49c929410d739f109e75dfcd54412687ac3fa2760c1d099f84103428ffd39d4d792a7061e990dcf6c19a720e2612cbcab8bab51b9087a79ad99bb2f760c163d752b55d247ee70cfa93dbc5b47bf9fffde204cabc6f6aa0059511bc1a0f0ed9fe79592335ce7ce2099ed09e48d80501102f37fbb85a32c6f2f46ecea14815a692c24737ac711e3133df43766f7e2f109332d352a875d9d07e35a285881c01edb01c8c74dd81972aa88b5f8f93c9b02e6c9b02fe7b9b797826cd927c67e7aa3aad0025c9f95d4eb85019fe4dbb7a9738c8538cf4281075cdcd48d4787af38b430cb4fd52cd2d507d458e333046298187a91d1df4ca3fd2dca4b092711c15e9d82b31eaf55bac8578deab635635b81b7c40e044f50c574903efe8093f24bf04dc9fb4237333437fcec3e0b5004bb617714f14121f0d1550b0705c4679d207cf75b72b84e96123a5795c794a49e98edaeb44955f0d2f4f9b0c8f491a487478a59d3d9278d7359b4d29588a5cdbbb3d8f95110f78ccf657ceff13f1c4c89f798b50f35fc52a04c05881461ef6c2b658e8846b90661e05b15daf3c2734c0858cdcdf7575b1bb0e2510ee4ebcff4a23b59f10d3d79ca19934cff0d75986bf7eae4b056582ca8127c37a064ea4ff9ae95f31ed2f7c42918cb650a126988be8a1f6bee01f1674fbf222fb957e267072ccb332a073d7877edf67abc6215918e1dbb2b31b7969f4953fe16251bdbe63be0a7625ec249fb51adae968cf75890e6a908c45e5a59d3d7dac156e226e899fb186d80154190f61f79195b034727809c5817839aac624e747bc7a774f6ddbd5c125df7d7cf2ffbc880b6774c17361f6736fa9ed224cfd064d217ffdbe66c88d1178696ca3acc301fdf20547c24fa2838c10b34e8dd3dd47b3c6f1e7ee598b2a6c0e922b14ad6fce67d238c2c31a4c3ca9bfd0b089a83db8014012e50f55cf4f8d4c120b8cd3cacb72490e7598674ce2d66ceb0352cdb7bf14f11531ed1d8f07b6b0f2a393b5e4ae83af4e3f145c5fd5cc970724d94427c772cf4447a1218d6a5d2cc3dd5a9662193cd455753229cd30bc1a36b65c13d1e8fec333285fa5934a1fc269579049820c21c068e2421224677b64b61353a1851ce75b7fc3872832c8a16e99c96090afb5e9f4c4ea9a1cff3211eb9160809a576bdfedd9f128967d1a728c49151d6a53d3e1b32554b6bd667798403b7b26145b70a24fd342395948214ed413ea4862651f7e6fd744933293d8f4891725e53b6bf9e6a43d300382b52aa7a4858b07cf1be29544067e914133920f3c9c048e7f63076dfa05dfeea1e6d752f48ff343a72d85b9a35cdd6c0c228e09bcd166c50787d40d6a96b0f29f9fb15ade2a783474992e6b1cebd025ae8f4448a782cbf053bafad84d8065373aa6db66cf5e1a1ec39b2176ab60a21d13102b3172a73c2085416a6e1c49568594e14666581a57bf2a5f795128c269d1886126a09465bfd8644a0e024d876e454c48cfc15cc27041359e3348789cee5f23b4a06099338583034c2cc81f163f36c44261ca1d9bf00be0c0c381360314cd110e8cfd106c8468af54a7fd9bb2fecbd65566cbca86a8495eeb13d82ba606fcedb5bb9ac4b267fc9f81be5ad0f4c5bf925e4026b46e111fef512fd3d180ba036054f8b0a8293c52e17f55ad8915c9287ccdef065158de4199b2006a7a1ae9642f6442717716ad74eaca7dc898ebd5e3b0cfdd9da9b8847f5bdfca8fdcb263ea05850a775dd0e186601e78e97d461c83259c7bb766059db2bacf951cb8bcdc01d2d43a39ea0ee7418130062d35625a04434bd3e87ae59194fd9569b98197ee19c6500a00f2076b765011bdafaedbb0fe26b312099d15b01bf342ae7cfa8baef85ff2787e5ae5b4febf50a30b2f47947722daf50dc715b4d547c8ffd86e47b33f52b51517b5cf6a0bf200347cc315502819c4f614de01969ff7faf21c7e49b029b9a9d2e0e1a79212845e919d6d1f89eb248e847f05dfa9d24a2b99f0c734fa934f4f90f8fef06644ed7f8350fc978821bd25fc8d82dea84607a65b15d0053da6909bfca20508933a449c3d2b21684798d6598daff8b96da0f424c25b65c6d271d05c0fe2d24ff6b2c7ee46a998609b38b4799ba1d34452223175fff1f7817fde68538558fb9f8b638383b5498f57ab5ab103cfbe40086f5e2a10ca9874a67332dee09776da0876b9f67d922e248f69f578c671cfc45613dbca97028e84354623f744e6c9e253671ab1e295ab2c706f57f28b2f3ce114b8e65654a32f32c4acf8ef5157202c6bba9471acb645fa8582978d190ca1bd940df9b4952369acb9cf1f2a92f25b54667a01dbf8a6aec5bbc09d6c6bc1524dff989c6dd69eb3e534b48df58427439b64cfada822ad306e43b9dee1e65962414bc5a09ac96856deaf61539ec10bec5d5121dffe45980fd74622135fd2d2ab32bc405cf267247f7cb3105773c44766c0fba43133718b33615c37ebb1a5fa4a6e6b636740994976629062246a9785edf5ebfc53affc1802b70b47cca81ff8a017592230fe3acc43832ed923d44dd2a2d5ce38f82e182c412ffae00011b2612a4b0fbdc729fc27f37829240bc420a7e8f6b6a1774eb78df1ba0eafc8e03ec97a26be335a2b0d3e3faa26df45592716f040c3f55ccdce9a6544669d72c1c67f18bab8400bd7cbd0a12a6fdcb4bfad30b3e249fa77d0a5054992d184ce41a70cd4fb971b50797394a13ab5e984583c7bb9a2293226d83837ec31f1311c3df6b98b820043c440b63547801a8617b3dac90cc75c214e78820eaddd0267334e1d824bdfcfdf02dc20cfa3757a4fb9544b85ba4a9a572f5948823209050226025461f4cd6d474dcea99e891d49923d9b4566be810faf14b10451dda273d288eace7cfde4bdfcfa22bd90dae8c045875e118a506b207b2d4d7938b997370f4345915d6ec81380d4f98fa3de09afeb1d6cb71ef0a32a981165187b4cbd041f56cbe7b7d3532414ea5b5ca2379f48ca200ef5f41fd87506203574a84a61fa7c72182f754278f852894a52b9f02dc2fcc4b2ec7698b33842f8311bafabb73031880a51f09c230c74f06d1e6b13819b20f5d06814c240947c3575175ff85912144e7eb534f58ac1e5e5592037b9b98d26785cd69fff10ab9b3c5217884176e5cfba19f27f30d77b93fc7411a786f3876831115583708f277767daa8f4377b8eefc1fbcc5a1f0703160b8f5d93057159c8fb9726a3198497d9dc6dd9421443cfe1d7af95c863d152b39d07eba8fa829237673cea907a8f5e857c1f077b463c68595417e3b845380ee23cdb49e9aa7ec6b5835b4322c2c87aab628a9b7a79dd86cf96adc82ce13abdce2b32a0accf86b91cc0764f182726aa081450f5e5678a50d553d83e89eb387d2979ef0ab3373db156304aee06e0d885d23c778fcc2006aae22375c0623344d005478f23834b01f29918ad8146b39afea551f10854336943e27b51a1f343e4c407c1cb1a02df824bef84274e713106cb441b290dec38ae93b1679fd8c264c09426f06ebf5315fdb4d20e219d87020980a476c12d9ae5c0bccb1f89208f10bca54f31ee155505b612a195e8f00e2604ea4184b85d1a9eb420b07cc3c4c36df5bbdd51304531ae4df5f357dc818e90595d04bd90103812ddfaaed9c5e41b6677a38799d24ed675634889cd28b088a19df13b185d8b4016e216f0cf52280c7ae131b9435ad0daa017145d457a8c5123a8496f3aa94ab83a70865d6f7ebf9cbd553fac1fb1f1399f359785aeb7b5ab79f30b603881700d6e92a24774ebb4a452d482d0930f8a710af2d8c43b33982be94d8c4a26c7ac99be48cbfa6b27992edaf2471551253b8700ef5a64d31314d752ecd70edb2dfaaaf77d151a94b873dd3ff8159e388b1958b59fe055d42f35da1022ee53a10311f46a99ae97c61df52e585c3a65bc9f2122424dedf335212fb7101a3f3da6e52eb457e7a2e574a46df93c8fd0b9af0de1c05faf331ffd4be60fc4a392e1be17c56f78829f219f115e45e75507f950d30c7729e49f8a27df0ecbe23b85c377943ca8e10ea35f1008be97a50129e6ad33bbf2d9390cd2a3665dc55cbad63a00b4d261199db7a1bc422981e73f0b514f2c76699e5408bb1a67672817382816fa8dfb124350b56486174b454572797a364822555f4a96f872745f36ac674165a258e239a203a0a4ce7c042759ab15606718d20968db889373ca2f41e68cc95e42ad60efc525a98567294052c54d057580118ec55157fccd7526df9d9bc346fe12044a002774cf799d6dba276a14fbeb07a6d79018c3e09bf9c727482892abc97f2feb0c0f709a6b7c48e29df25e7ed7744eaa509aa4c033b38bf01b9726db7ad7d509fbe6a987737c7a6b41bdfa14380ca8772322ce51827c4cad82dce640f72426a65d2eab047b134cf1a0a6a5b7859a6bad7fee0ccfefca6cbac684348ff6ec527421d3c27c57e1d434ab895eca932fc9072147fba440420e7c211b73206be9b82c41325d130c4b9f539c37d5b9dd442d0c1df1c7bba29f694bdb672ee00c03871e87ecb1699d9826846717808186075c16e1ad4342e1fcebce1cb4d6ab73e1c311a372c5018b39776b690101851b9c6721719fd5b0c26821fca7ceb3ee357cfcca1afb11b0ad5a5b9691338943bcf6c46f4b72e9a72432787613ac5936914bdc73c751f3f8655aca8c27944e1e11bbe0ff75a1ca48cace0089c15495d26d9b29f67e74f9faa9dc3b72d2120f0f5738a5dbbdc90ad9c22dc3f84a444e77179e365620dacba50145bfe7418f0bf74724f6ae5401c8d76cc4d2b10bfa2703ce30cd17815c7064736a4e62c8a89f78d203f612b555c4e4c28cfff15e9a0ea340a599313ace694353a60bb4f845092e71ac04d172beba57b7844344660b89f09f85e51f113e935177e4246e09a93b7cb375af43ec1366e363d1dc4e8905572d2b4adbfd63976bc6b316275c86c15ec9795077c963b6ff9a7b465833b9edb8d7985dd0f5227328c3a1b58f46766d53e8a945a15425c21748427a42efd2a852a1ba9227503c410d26d6e889243fdcbd5df2d62d00bdc328ee938b1ca071eae36ae8df64a38aff3e744e991ad8cf37fc61d0aef94cebb9e29e922758b86681d22f53e4180555d33c545205d10723567a6f982c212eef124510a68e625a84ef81e1e6a66fc13ed3565705ae1cf257e4c18d332d4b63d26a2058a8f3c6da79087c3b3e5140d20fa49384f1f769a6e960a42f9e45721dcf44b0bf3c1fb876eab13dcd098e62c408ad818b18dd1aa43cacd41570a5f0c3aff7976852a0e7fed50a283ef6b0e0a0fba7d9c5a2f55096ec69237749ef7aa8f35d5afe5bae43a8d92786fac0f7214c2400e146b85c5b2805b8f82fd744ecd78febed2a6e577e0f2b80d7a83452f050397785ca52dc28d4a6bbe1013549e33160a335c8a1a835d4d9966aa6ecf07c2a88be07744738cea5b0e6d80b018c9f0c76ba4330ff309921a8bd72aec76eb2c01b194e53fb8be539d0e2301f8f781970f03b11b58f613d4b93a77e3811d993c456ca5ae341af24dbe952f634b1bd2863f77b7586c04bac9bef359fe3d02f42aa1b69a0056a5e961c126bfc4abb301c20d023bd1371fc134e2b1098fe44c48bb31a3bf00347fe12532e0c1631f40c9d3fe94cc2a8a1f9f5f73404b184ce4ce6bfa907b894e675f427bd3cc51308aeb962f1afec98d2d34d0d61ea21e7a932b16bf6f5a80025f7809a53761b3c7f980b1dad199f5a9c1295800bac0b795be146594e40f6a35f1db1555cbb8f29c52169e3ba9834de75b893ce47d551ea3f3836cfb5811a24aa7840b6781990b77fa349efd46d4a8ffff51263e25a7da904dca5cfdbdcc146eb416b1e798acccee07fe5908ad528927f64a08735ae6a8f4ea4646f33b944843aa26f43b053d2cdfa045d982eeb57f38a0e038d1c2673ad82c7b290326d85c584207d38fa40f4493f0fd86bb03de61ac2ad8c3ce42a77636f4472efe01db9b18fce7cdbb33710875ecb2268ec7094038b239934422f9d65665fc5d8deec6acca18fc05c3c3c9c10e95180d7adac253759ca7b2f03072a10860b3718dc32c9922d1a6e14ec3f380dd2a3d41fc68cdac9518b9a2a1238ba4c8874fd6094df37fe2079f0c1ef7d1ffcb58bf733429c6e050092cba142ae0d910e131a87578e0da22f9a6216319e1e71262db65543f22afd8881f0419c6a7e53b1df4809b8a692c75608249d761f40291f5417d7680cef126ca05258b1480b716047c60a8c2bcd32cc7c894558c185fbca6057682d5693a163e5a5e8759613ed24ce8ce2bc6bf51a4d115f594c319d3c0d761c699a9f9dd9c6d566c60ccabc899d9688b51eb455855a9d97e0193ed5de694e1a1c60a5edc3f3d88b9586b8d041f6c64e74b7da6df4fe627731ed8166981332a68f96f4f000c4a18aa6b0833e5b386eed4fd3d08d17890a3ac34eb6a9d20f1a27336cd3c7f82f7111afd3815615d960139f256c8cb1c3e34b8f05502707c8ea4fff22ff86fb51515420ed464a87ca5082c9539606f62800a1746184d34ad663d170049ab198b3c6096a4b7234aa0eeaa242bbfd1d402677ae83f386ba2c58ae5b561d6fdb62c30797c45c13546b84d36333c1e8b066e63c97264cdbb58e0b96c8cb40948c8b790b25cd9fc6b0cef4a134d9ab9d185d1d6c2b7f5743ff39bc56402600c080feb4ace84f3df8f618e5bafb628ee196597dc5f9e5679e574f6494984d9d248a578068f570b4bb70d93585ab1427a6933cf342538517c322f7d438167fe5902b362411588f4328e7ad194f8bcde72fcd6833e9d298114aadeb62836754945e41f165ec624d590001c4f4e9d225ded5a3e670e8c1ab5500f9036bf6612a16074d2066268f87f4b8502ae955dfaf4bae390e2da15731fe1c9a7752226cf6e631997473f10a0d109a20ab6b57c81a42f9b40aba8a276db9695ca4a722c448f6f9de8830fa8408d2d4ebf34694318b16620aa46055901e5dfa6dabba8cf0c872cb7525d58a8463ccc37242360a50ee1c90425278255bb772a05f8c00b7a2d5c976091a6d7ee21d47b68e5ada3615f44ee458297cd536f55944e52d13c0e535355952c04bf00ab4878cb6ecac2ade2dea2b686487a740162dbc138ff6994396b0a3f502c8e81ec546530db66e2bf32f37056e660e911d7488ffa2fa3f5de3d5ac0810496b3bf3648a2074fbe1a5fafacae86b52344a6aad945886cb9629681668f5071c9998c692cb3b4897974e706c6711d35924791cc2d977104def6ef0743d7b3026eda72d17d238488e3c72b2e58ec2995f081a86ca5c574b1b76498bf78de8f6e1a1f5818618d0f57613b8dd17acb0bd91beeb0186d17836d38a355af5172c192e80e5cb203c7af23fd758688e759df555a2af8159abca306e734f409d2c6bdd7cafb147a577f94358a0d1e6222282219b674ddd5b8872046350d665dd4d15d64355d1f3352b448ee73ec78b6fbcb569be0dea1231d05fe41e4b8ea77da5279f12672e41bff0e1bb362bf790872930a0cd7c29842cbc39ba589d5a0f595d26e03f4238fba7ae92860fbd9f39f8a09890614f197ff1810cf058d687bfd62f252a5e466b27f3b1c39aabd8b61532c8ad9aeed19c50d283b29dcbf3e34455af3c38c874544260ea2a6b36f87e807cee56a86ce9399fb372ab8d78dcf6a15bf46b567d79dfd2b52bfc321857f6962f2d66e35bc67c65cfb6b01836e3184e10ecbfbeb447df529a25abafca8ac886c76ffdaf2f79e3996be0ec749130ff53abeb605d088e5f557535ebc536303c6e966791402eac4a75c77586d806ff347b5488a8238bfde09d3bbf1681d3b74604512ffaca1513a06d58adf3f69070cb0e792756fa394fc8ef6d50898c19f1429005a53ec5d3b58d10515d3aab67b1b13ed83176f3aa415d28f535c5edb3aa59d4c90ba6f4bc888a93c07d739ed4fc9c409f9f57b9ea4bcb61bcf9110f207325de3d8728380b15de2a96ec5d07c96becaa45cf5b44da45cd7a9f2015dda5032dcf9bbc649249e8a88cb005684c4700e55bc122e8e79c8e28c847f070fa523b6d9b8a0c14ad17b1772af884d9d6365077d0243d8406f3fdd6d1a0271951172a9c0c07192ecc69b3c1bd3c3a899f343beb9825cd85dc8459a955dae5a6cb6af9475e0497bc126f9adb31d26720f5ff3ac450777f4f7e358b3e37385e0e28c9d4f0806bd1b3efc9706006e86ddf442d828b0727cd63c5b6f3f93d2e6860961ea296bd65f1c105b138c6219117e06c96c86f38cfbb8a5520f01cddc68f8c490a3455a7fa10fd17cbef0e9009e709bb51933910f0907340ad4ea5e8f5954661a9609def5a3f18a9cfb358bb24241e3d54c87b8967a2b517f3747971481d44f9191490a16949477422d681b664fa4d15dfed54c426f54091bc390719fd70a259bec58284bd669124aaddb22253c84d9dbe410fc0d26603bc226a4f08d9d96da95f85fa27b3ad304a89b3604abe89ea71885da8ed39ce8065e954f497a4165098e10ff58aa09516ed08f68a231b22104e875fd71dee62a1d21f75c03d24480446d7c91fe0ce9d0ca5c590c7ccd6ac09c4751abb574c4ea4bdca47f2dd8b7b3537ea0e7d6a0225884420b85be1c0afec5b315c6714ba003e9facc06922d4b2ff9dcd9d586e10ff9a660deb340741a67392d8331362f1a4f53364e551f880dd948a79e028fb3730bcaa5b22f14031c8447e76e49f8d20054edf47f5263f71ea96a26b14d7e20584c9f5da61c2762231997c81daae4c443ade1a8bf4929ca78cee09a322637d9e65128b70923f34be2f3707b6efd670436a7b6ac56df6d88c1fc32a57d712ca28de7e3c7708f5b81e4f4cd33c4216326186a28f8ed0d8002b9b90e63bd37c5a973e4a6d93976dc95bb3d33443b947c6a65c4a393a0dbc585fab81a10887ac62f78a56ef0a884aee97261ed2112f5c053c84ad8ec93344a172a72a1b056d96907c5fe7828ea6690cabad33c6cbef7fc88f19b56ee176b894eb9bee217b7fa6436e69c707f73cdf0f717c788ef70790e1e8ec3745e0452248c7d5012ff48b5d62ffe0d3e8850ce72ae941cc42a043d28f3f8356c1c070185d5ca3c2fa8f688993483f910fcf464a6282f7588209caf55ae5edd771ae8ce6ba169f0d3179a66ce76bafaa6a62eeeb372bb282633267df9bfeb599ba90ed86535e3d7eb65eb1d401058d86a15f8fa8a3f6c558cf0579df1f756dca2524c63c00a237b118265749b7a367d1fae67f88b050ca3f76b5d88093e23725ca8e7aa27b8df47f1c2d5713d8418c55e39c75577d8ec51bf19c8054e93df9f5614d5a33bbe4baf94aa6ee530f6fddb6af5309b4a2aa9e608f2284caa786567add01514a5e857abe551cf9d37725eb71d3d255d89fca37ee650f3f7e6c7fd8f5b07d16fd468ad4b9ec847126611919de0b11fb5d26c13b3261b54cd3f7a386bd2fd799ed961e669e970ef6697c6cb47ddd0fc4982c909948ecc35c55591bfc2cd4e18e7070ca0aa26ad9c0f343c5bdc1f8d0a72436f391c0e8edc0813d61977c47de053ac9acdb4410fd9132f5e011bc31dea24b0402a7bfceb9df5a9ca195d5ac5e11200ddfcc90034a98a88ee0696d354deb88ac1603159aa3e0ee9f2c381b31eb234a5ac814230daac336af8545f2d59c8419125922523ca818310235a21523b2e4f3eeb2a2c5d3433413053453a90bb1a236ede00a8dc2babd850ee52dae91edd505d837d889aa0f025dd81115804049416bc3e09e79380b7041a2f5f0a2e071fa73f6356fedac671e608a16a255096c66d89703570a92155d53a45a87e2b0eee70577f0def5449e9dc609e60b7a13ec3dd6bf7b1932bec46fea54d5087ded93552ad01a63fa0bd2a90e0d57f1b98cb0e2b7f662e2e07ee6e912314f59d37d19cda4f6a09ea40c54515048070fcceee9a549e8de002e265b73949d252f7168e10a16db8584d0378f01df4e96a2abdfed727430d0bf72b79b7bcb39a11c37bedaf3e8bd4fa44acec379bfa94e60c40f7f2307df8439fb9fb2311609970b70f69032ceedf2266ef46cf495f307d2522a0703af0be750483bb1197f58e68edfd2d17aab8748fb95db8b3dae550ebcff8d030aef8b4913f7ab1f0708c98bc3c731d690c2ef81947de3de8914a526612c649de68e5828b05f3d0fa053c822d1d9bc0ff246a74887db38fa93ca51b8971fe21e1a67365bf719f50702fc1c04a13976c84c4911b387abb4aa87d09b64645b2fd728d5384cf696c8b264c20a3c731b59d6eaf1ac72dd7d6540726e714484d63d9ac7e7f340557c5676761c0b3feb1b0d7a89093793d1bbe7dbf95b3310e91e9249c1a97f54c23ce586529c18f6834c4b6555b9f97f993532dab289480f39e2eb90f217649826a72c3016b1149c4511acdf1c56d7bf6067cf20748cb0de5b41b26ff46c0ddc2e5af578814f73181634f98b4ceefaf506ab293d83ba7c60d4dafb9529a8a5ff6396b8d65680f3b536f5842b201fde0851e1b808b83b87a81a48e54748123f11f45b056b75dd8cbabc4f458b3c8348ef632e31111e4105763a6acb347833c3636acecf73465617157375cf5de1b88b2bc4b583c12ce9e9c3f85fa485b54d1d8715e99900fb9df4bae33498e31bb07d60069c4b8380a6ec7826eb73eace54bb71a4316aa7214b0694f49aecec5d092524947e00ee1903be7a7ee9057697351dbf67f8504061a73bb61c2b872fed857ce56391852ba1b3e15a6ca9a9e6494ddbe3aac01f8cd43de35b8d5188bea98d5d48786b48f3e98d1430a0cde3d6ded8d72c7571bda187efd1de15ff6e0cd9ae055eb5660b300e897f1514f9d9c373cb9269cd591806940dd7361c87d9621f1a5817e01f50b031aa0b6c298bb62daded74946740da59d41aacd769a083f9e29005b1391c15490a64c8df4f90104b4b60107920930c8aece448c75e61eb9a454f04154dcbbc7536ce684c41af6944dd18dddef7d543709f636bf28a04348a1db3ff5f254c1c9b0ff5d8f51508f27de7c9be73c198cdc601a9a9a99e4664b77c01f200295f899f700242597986bb1c5e3fe907db6dab36e396f37edec84e768642b1bf5289a5adddc29c2c074838b4fa39aea0f8f77537b53f9591a9b0b102479daec5bbec6e6d0dfb6acbc4f8b99239f0fe48003671125b64602fe8edbbcb0d321a9a02774fbb1bef029d3d3cd0747481b548b2a363a9ee7ae494a822a84e9bf7b14c5bed29e8c0ab3f96ed10c3a7e205307fff791db1f535f2bc82ae227a53646cbc1f65f443b04c0b5d5abd6a10be33e7aab2df6d28a31247b6bda32ed2413d8d4d09f25ea555b09d9aee695f7c97faf7b62b828ffd84d6daf8dd365a7dee3b6736f16620e0e67ada3090c1b165c82b82357a50d8b2c6879435df4d98ec5f1b4d8f84061c99fe9ae2a289ea08b10e0568fc69971e9daf95c9ca15ea3ea02bed5a6160ba7f3e93b77c92f567111002d8eeb830776af019b80f74459098b68eee0404ce17cbdd32364fdcf08edc725bcf93b7c01770646b9661ab467fa7310f070504e6f77fb7a98ccb03ac64d2862834974f343b9580d340f1ad365b817541e4b75606124d4c4c88184f14b60c542158655505117d2ab206700316ae1475490935fe0d116abc183a00bba326913d53ccf97881f241929e3089c2b9a42fe1e85f8552ae99a893606f2240015a3b0bff07166819f29d8fbc3384ca475944fd55baa1daa762e583b33aa081885a347684081a2d8ef184805857a31affa0552fbcba15907101e19fba9e1d67da4f94c37473bed4202122ede128ba1bd55b0d553a64d41ccfbe6e2356d6c876bdbd5883ffc893b9ae9b6eceb4f2b72b28d1fce16cd3f23ff3572d52f96328fe5e28bb2c3f5bf7875537084b3b89ca41f7908ce2cf6903ef1a0025fe78b38ad5a6b257f129be2bc271202312529eab0141d29da10913d696b14c6d477b46f1fa38ea2b9e486a185f4bc31fe9ed779f84886ef0cfc0688bcb873cb3c771cd0ba1a92c30d5d8e05094fa13a4c284968ad7380081a69b003cea5c83837ad149b8a5de03967f3fdff2533964f53268faf111921556f8fad621e26dbfc77fe125aef35ea399a399b3c08470c5c0d02da87f188e887a84a6557748c01fb78c97e87604a1cb17511270d28e025c0de927e529090e527d7acc999628769232d5399f313020dbd0e567d36297280a73ea0a997437d5a1a63c1bc09b0ee6d6074e8f848c21daeaca9995956a174293bdb3658dfd2a1da48ec8ee83ef5fb4be2e1e09e5ac2a94ee5e8a74a7d746c1996e046272f135d41472120c5c291247c12aa86ae69b0b24ec7871f426a519f991d28aeb2fd1e00e71943585615771c54a2171697086b7984aef116d3430651ec20fc78b0e6acdde273d0100f1f4a32ad7e12238b7e34617c9ba0a5f82c331b747bdd17f1a4e46219829a7f6ace29d615601c92bc2b162beb6d74de9a620d2c5aba3944219df25cc9f8f91f72da7d9c100c0ac8fd19eb1473e304a1cb338465e3ef3f16d0ce0ad61f8dbaab6cbcae543ae1fa2455a10c5bc0eb3b561f11ab625ccc4f7ab20575395d88215114e5c8adc104863feec4c234d7c5e85acc5e0d048b002af8fee19ce7cd7c7ef4244a9e70957bfef86972eaab050a16dd8d1d0e9708fb9cd1aeaa8dcd37bbf14ffe72d5b399413ac0b4acd82f6d2fd53a4aaa151529adc5362714e70328ea115ab5d257d0c4fb601c0c919261c5f846360db1c93a112855abe0f69ea78cc23dc520f94e61051e43ba633fa79845c4515091a97d58f32e7ce71d87f4ff89f2e6d08880d8a58e9067838193b4b3e25f7992cdd814b114594289a94a2a3611640c5f9c52256bd91f3ca48ca72659d5b237712a3a5f98cad0c935b4be21f942a88cd48168e7a578273b839b7467bf520ed1d492c3c5f6230743d005859c49c2ddda1815effa7e645f27a5e2d3fc09908aadc11d76cd473335e3a9b99638242a107f8fcb7efa54e4554ed5b8a5c0cf39c05e6e4069cf984e5cb5484afb858fc5a7677ea28b9b4cc919a96dd33064da3c9bcaba408d76a5c2e28ca14bcc55a19e66f6b2f8c1d87ec7d421e7c074f303b246c02a58f47c3b125fe4cfb146e5ff232cd70e84af6da93d1a7885686647fa5c30e155fbfc99b2f193feec696605f95e1761bfc18cec9d510868d4fcab5f54068be6d36b01089ee72a0f0546166867b034c2e96f02963c5641869aebf6d3c161b9ef39398b7ad042e79746d41ec6c81ca8d0e522444980253a0f6a5824abf785745b63cdd96961232ac99c4d8fdd1fda79b65b459406ace3a5e7241eaf6690f5ad560644d701f8f34e3e4947ddf04a07aa6e3b1214392c18c7db072e9a0dcfa0cb82d488cf6d6fe5d877ce6648336dd7d5b7f07541aa6ab89d249a46728976a408780e951c6fac23f480f98b3ee61fbb65e96ab3ac6a0b70ef940beafb2c62806dc9e72144d9f0901b15d0c3abdeddeace47fa8c30616901a2367cba56ac1bb168b604945f0c741150c48d8f478ce81aa0c094971acbdb32fea7a362d0fa22b8d8ad3469ba9a6bdc68a223d3cf712b48ca4115301332d918ad7eacdb98256b9bd358389496c17f47a6543c7b9299c367227f6d17f214f53ef05b48dc7162942896996652b3aeeb1a7e565d09dc246d1c02ab818b24734e0a5df3557e90fa2e3a146bbd794e088d72262e600c08a4fa54cfd8e3d45787d9b133bae92da2122b7dab4b4fa696f3c9e83581b5504d77acfdfa440429d28e5eb3547bc4ac2290b887d695dc2eff5bd0606c42fac53af6a5ae70453494925d840de121b80f80a689aaeec1d930d0b69786209ef468777fb0d2c1a571ac1c939e83574f1870197dd20986f02ff1d5c5b0213de63bd5779e9040afd912798b5a48848a8cc0e8a798da22bac5b56806e9cbe25b8c9b87bf97d98e59a39be88e1cbdbc2a506b0ed3021a8c01614f83ce47941596511b55248ad5e658c60d6c30273cfce3870c7ce6575273c57f76e062bcae4e7f9b353552ff52bc0d6f2f781b6b25b385a39df33316a1a48fae880ad4d3f53d0017e48bcac0d48581d1706752597fa353d181aed26388ef40f93ea8583a98eea834d64d3544e62b608edf92782ccceea2a96b433f371d79ced71a7ad5613f405c60986e1070724596851d4a17c18f9ca4dd2f98fefd29fd1bc928b23e2548d77026905489d87fa7ded39d856b79e1265a1847bfe15784f1f802044b9689e8703d2d0e8955e5301b7505d4f378fed7d248cd2be7adda9c89d2f17125959829eba94ef95100d4e3ebe4022223e77971ee44622b2c4d245a9899c9944b5e094aaef3b0bb8fe7808908c32d6d3613b67b351cca9636a7c859b1a6bc30c55e94dd2892a16911b6e0861ce9bb0de04904ecdc993fa4c4df4de46e7c5db248514319964d7e4a9e68f8f0efe7fcd91ad2c59b25f3a155e371b5cc3fc734d3c221290b004ef305751385f096a237d9e1fcf78511d41cf240aa3f794eab39be3b2e54cafff502bbccfb7f675fe07a52926b537fc55dd792edbd0c49073218dd2213eb7df92572bfd61995e3bd4a8d4d01dab8c2480241de36af1b7db2792c13ee861a11fbfd7aabdaa4f6d8b31a3fb622760bb5a7da8343e0ffa8965a04125e5e128bea013d2a47c2c33dcdb164a2ae949cf59244e1e1ae75928d5436d6172b2b756a4da478a2be398da39523496827121f47d1abb5bf9eb169d3406c1478594f62bab05e49374d6d66f9b35781342ad82376dce3bb58cce1eaed1df56ede0fbc4e578bb19fcbc951473c250aa19e5952287cdbae3d616b66c1f2c2304d28f37e1e7727bf030ca34f1f1ceff5997dcaaebb32c5102dd52f6b600a40157c3abddb98ef4024315a516252e9b2f086362531f974251237f41d4dd6622e7de8d313acb28c510f6410d65d54b7d5d3a72dd3e1d48ae76bd67e96f0994eda136356fefec102df418021b00d4d278c53303995bb186a2ebac637598e409bccbfb26767e24dc969c162c42aaf4f0bd9ba35e4ce979522b25720fd63659bdd2797a14da3010d07b7a71af40a7704fe4d1bcbe970d1f69b978b573feb17d6f23f83ff70538d60f480a6c2e21e3acccd46d07bc2e2c0ba9ff2a3e3685703da54b4310122e70de0fd3647ee2b712e10308848ad2e148a0897c60ca9c3f7fc4551e23e9656a18b0e08040b91b052eef223f31e45c1f13a0ddfdee01137846fe701b04bf36a8bfcd5c8874c7d94f87be55d043e8cdb07deb212961877f78b72ad1be9766c12ef9eff2ea8be581f3f8c758b0ed838a307ede93574c7d0f44e004edaa96c1163be4e70bf24086345bc529e539d5011dfd5a8b6b64397ad849a2a14c76ef03cdd269a9f9adea2612e4748c52df71c67613b52a0924aca10eb5b5030556eb2ad8b56e2bf8028a3d7bf944e4f9db5cf4eab4941099d1a82c1af87f0827e88852786dd248914c416b759aa1c228ae8fa84f1fb2a13cbc972a61314483e033e5728a485ba9e77bb994a65da965df10cecd157ea9d1b17807e78f5324fd3bcb752460372bb686d435b1777dad2ff72c841c61ec5c85adb6ff057952bd5c9c551c4a2f8a572787a92ba38013a0af5bdc5f5b286eaa54b044b5e80886589330a9193ec41bd8c97ec74051a8b6687ac532f1a1fc3e24a02e3c193e36d6702e34516be3ef029db56ec1724497b48511c48f561310e2e8abe2b5ff66b15ebf4709974b0d3a2939033b8809f74ed13ad2ca2649ef62339aacd6079b11f2659786376c6c3bcd3174c56dc7c93bca1bc9921d5b49bb06ed5ec89f86153460b978da19fbffbabc4e32c5030e5df19de3768a2635f00f73bbc4c2973c4aff02a6e4f8ed8cb6aca7d55de83d956a1a7678e695df40f285656bc848574791b6d8d0ddfb3a5297d92fc7c0a8dcad75419ddd24f5e75bf5f21502d0f1aac7c41ea9e765db0fc401d96df2fbef345a8b4aac75015961f1a18eaaa0bcc354d4a29ab4c5625a2a041b37460aa4dd53063b81cd82590b5924258b435b608139c3933545b559e4da0befb6205019306078c5a9415d91193e3fe3dfdb7e0b29032c4b1550b9573be491a6e4234dd543a628679b4fa8eec16b57f1efc1d9082b0b387b8f49298bca5e37de2bcf780c40f3735f2b6cbf041cc42982b6731070c26a09dc9770efbc9a6e1f2c8ebfe3a91ba6feb18a8674100a79e4919cc8ef738d75ec6a6a560f0a822f310f34b12a7520476904728301fbeeec383c321c3dacc8b66a636694b242ba31665077d81888dfc4fa7c9f9b8ef7bc7bcb69a89fd0f110eee44653d88138302168c37bb5c36f40f0e5de391c31be51274c38c2c4324284048b33801899e42e03c3024fafede1bd361b2b17469360050e7c2292b2435cd9f79c40624c636953a3bae298634402c43979ad447e0dc918b11645fcbf5020116eef570c3513046aad1c544b80a620b9200774d71434cc398c8a850afd6a8c0f4bb7aa29c4bb9699d7ecc6ad719b6dd3f316ef3b30163538910c33d125eec49fcc6efa523cb792425a3992a427db4737316b28d862a815bd1143cd6cfa064a719aa6f592652bafa3cc2fe066f2209e552aca9a30c2bdfe3532817ca4c66d0415f596893f393fd1ce209c3e2c73564394303311ab634061c89578a30248cf3c91a7a60d541a97e7021b2e6015f15435cd58ed7a3ab18ad674b8190b3fe417d41bb2dd0d8b47c398fb1b5fe5d42824860f5b9696bf9e1d75c6aecf8e290fd2745f38e5fa3e64af5c7e74025548b8bc359de2a5305fb6bbce6a4dd71f648ca79cebbb79d974ae0162b9e35ec08b35b4d2806a5981de17bf1b677a6658d6223481867d78a3a7d0893c048ac936c3bd2d11ca173e6fea6b7a6e796abaf319a708c2764f4b868d193e16deeb986028168a4204dd1dd15e50c02d6b6f6463f1fa71c0d29050e30be1733d864edfa9583397acc3fe1cefbcb43297ef7718304b635430c33dc8b1ac23249a727060ae18222dc56432a97e400cdf4d0a3024cfabbbea0c972c0177e38bf99c47c0be75080ad0d5d6aa4a720eda26aca73d2a87842af80eaf1ef068b2c0ac2d8f48f8d321595b3b937fbf00b035070de5eac31c9bbf4126e922f401454e44496a7d7c5b7510bdde42141b4dea11eca545ec14cb269203e4fab9d210fce716413624b7db4564cb830a72de3763fc4cab6da82cf559f66d1b97c0011bbb0ffb42362c4a661b74dc3e5d60203ec63258326b1db1d57d39e7fadf7257e290cf4fa8815228754c576a2584b89d1c5d49edad74ef05cf7366ed1bfaf889d1c903063e7f537d86796d203df9454954980049559b40b0f15631a3175920802a58244dc8f3c9aebfcec2e4a7c319058c3846a94fa86b703219e5c1eabe38af8b5bfd24745068b1029915a4910643378a79607080c7871007bf8d3f0e4ade0a7c01ed3cf5280db3a81a6985180ae7889f16b9112a66b39ef37d684657ca6ee6c46f980ac46ac4d3095aba835c0fedaba4336e7b76865244f5af0f27ab5b199376c3903b0bc2b81580bedabfd2d38cf9dec6190ac51def585e86493b83690b491d872f9b18a2b4a240afc7c379c736ee81227f56d9a970af52f2b4956f7f166341b2038c683f68cadbe8b08c75498c2ccf4a56a4056a946719e4704919799d2b7429b24976b9eac490a041572ab8c4cc3193da707f783ffbf39399a5f72eff9803f5004016341f8e8bfdb3a34bfb04dec447d5ba24cda5172ebdbd5df4e78e6b43fa085c791eb4bca461deed519e05342540d5b9f193e497fc7ac9336a7ee8fe4a02f0f708bc3273ff1a10ce65180d703f8004f5ce35c9f657171893e07f022cc87dff0435b5993e89b7e730c66783f2a68b8176027e551b7b6ae6e4ac08008e76cc0f55cbaab5b3b13c4dd49dfd1e9c54aacdff65f1640f2186215d600afe8b1c2dfe88ee0aa90cd8f266f4bbe67bebea518b6025176a766e9d9b6aaa63f46e78b4253ec51d28576941009b05cc59ae3d7f9c2698d0cece41484d48b2e079da9ef87330f8499333118afd10d30f5c3bb74715b87a5a48366506e53da25e61f124bb96d1ca80b16efc4357655f4c313e3b8c2f35e446e34647143864b11d7b34c40f918dec1969666cca683922dd1fcf961f420da62216fe883a80bdd727e71a993da456f99be8fd1a1e3ca6dc6ff1ffebe693d8a17da674f639c7735e08ff3d627d3115c04da4579a6b62a90959c73a600066133dd858de10c0d0e6feae10509323055c2ebdea4a95a59fa1b2eddb998354c9ff02e7aa77341161c05383dbc7fa5b11597e432c84a6745b2751791cb882d4b0eeec4464c261b53c6fc3c5250aabcd82a6933f2d009c955dd50daa9c96062c108363238f89c646e5a589e42cd531f2a6ff505f045f68c1c10110e53cd922655e29b80cc3411421fdbed68543523269e667a15628ed067a598148b07c17922dc27fe3ca539e75235487aa5cecfb8627791119daf1ab2c8e5ede041207419756d2769b4700e466e20c7cb5204273d04e81c1676a80e54fb2920bb4fbe63b8f4f7ea60a981bba0fd9ca8492fc67df24a87a0713f8e8a752f6fea04f6503a4607214ab280de41e93971eef91cc680eb2902b819205ca1b9c33a3a5faca3134c53302f4217403b13cfd48d443cf7f2fb82f8001345f4f5bf1ed4192acea15cc8b7d04ac8fea03dae6aab5b8198279fa1a9dec2ccf07ddb370dd455c6736ebf874cb3dd410e5bf762d96f977c77c9d3f9bb6599336476230d4b6c25cb3e33f8a08baddc84483b78e8df6356c331a4db4e7764f8e47b9a9c932ab008961e76c687f6a6c4ec53f8ae6b9efcbe7b59a719be5b6904894f7234afab1bcccf92d9a816efdf7809991fc5221d6a56b6df25b17868849b40fe0215cfbd66ffed938450dc5b07e48309279ffa272ed1996ab84c78719d5a9307f6713ef9e0d509df1d2b3b39f3f204b8fc64338a65269d0b8e5aa4725731d3df82ed6919796bdd85b8619ac888b8893f20f6d980b8d66be3a0cdcc0a32b79be800885ef79f5706ed86ea29b8a71908262c63f44b6bb5af0ce0f062bc79ad78d335f2168be128c4c49ce7c1d10bd4dccdadb36a24f142e2c4c2b267d684cf9815030144a31f0bacf6ccfa18dd886432f9671ebbe3e438e0c412d72ae0091e6066a41da26501ab4cb7fe741aa922492a43a2e55d6a86dae81ceaaecaeef30dc4abfb01ec0a37f31fbe711fd44a80b3afde59959d15797a3a1cc5715d8ad4d2683f6ee1325129a57946bdedefed9760b8e1f63ffc6345eb48d43e43f8cf2a0d926a2c15f3ce4b3f8678d1b8b2531c1f7b776c3e3d831cf4a77f29729409bc08df46d0322f6027603400e551dfab2020c1f5b4665afe59d14d4e64fe28427e8da6a3cc2add0d1b16a987bbe3d6d09c141fe1847a5b4b40c7144e0d113f6dc65bbc3cc946cee8af4ba53310fd20b6be63eea5b95aeac5f6c7b4ae7647b749948ccd23205906b6366e7a111349d2153cf5ac271a9e07443926e7681c3ed6cbda523ae6513bbfdc159e19a16f76511040f5ddc6fb912419a598d762f53855ba3311c4cae10373a1e0ac5ce6da8ed6fd92f890917cf92b0bc7ca9c8e92d094097726e0001f95a3742fb689ec9045a9b53bde6d84e9d9452015d9f9d8f8dba1b94ef4c9afece7dc8d3a8e506d01b9787f34f2798829f7d3e24064ded1f5d18f9bf72db9b314eb6cb00c61b06189573d83faed2ccec0a93f1e18889932290d810f5db0948c4d2e4415c713c166be2602fdd02b33111cb807dfa9622a8920e5818e5379eae2c3809b91f84f89ce50fec7ad65e7d4397f4f66a4ba7c799e3cc97833884ef9300162f31d8b736e196296df16f32ab4e826b50d12fa32622d0ecf1445fd1fed26511a1d92eae102d1336cb622f1d2cb2ec012942ebf29130b8c32c6f69d8b80aa9362110a9df60d56ea8481e5004d33280a8ab4454019f7932fa48ddc31ba4edda3cd96df1f867fad25b56b610d393fc237d0dbebc7dfcb7940c5bcb2c4a1d016d0c4d51224ce31e2515a4b33dddaa690a3cb4668863aa8f5f816090202b08be856a153c741c15926e8f5d7f018bb9a23ad1c03d626ad99bd5791ab363c47f11730d7f717787359bc0cc1541209d76ee9237145c8ae404ab1cc1f1699baaf0ab8bcd9adb686b5268c80dbbc1d753706ee5686824b8a488fa5a3d9fe043350fd1635d3134bf528c2413fb5a6599e011699e7c020bea6184bfcbeeb3df3861b026e1df6e4eb86ee3c4fc9787ceacad9b647c86ee0199a5cf55568a63ff1a531dc51f01fbe9984d5ed662d78b0744df3401e3ac90e9a32eca702f189b084b46b9c83a10aafb057fa561937a29b6d44d6b4e7d081075fd5651e455f3b4576bc4e25f09109c1f2fa9855d3799a5c875d83898a617b5994b1378e97f7bfbd7dad3aeb819c2488724af47b39c34c9ef1f4f94a0f5240bc49768f6f3700fac8794cf14dca3f52d05f420336b18b9a3e806ca450948ac642f06521515903b4064a8359b45d37c054fbcd2e2fb5e88ff66a397d770aff8426151d526cc0e725643f3d59ba4a112ea01ede083f8075e8f7a757d2ed5c6f6abe1ef91d03a916e8f70e666b45132c5ea0bfe5c9705bb0a103e40f2058c78336eeb3da933d3dcef5276e31b2bce44bcd2a12c6a106e0c566f49369d3b90371249e5ada414019d3af410e5557e65906ad49b54bdb42dbabde2db65171e244a323842dd38f412791f321b859bea2f5b227b99327b9fac3373214d605e01a7b2efaff4f74fb9d995d0532969439b7acbfe30d35862c94713a17b816074253a99f7e725dbf9002764b9252078d5639df53e352f57b2f7c9e7e2c84ba4664d4e7a982f3f4bf634c062d79a922dd9c154075fd425e7d6275763d54a3140b1ede7009400d25b23ff9a147d3b5b98224fedcf052e007a42f990497802884be0e16c327fd7a85fd8ad4aa0be58964bf74ae4ec3458a9ff1558b3191605f00660664292dc8714ae46d1c7a1be0188293f5920d128dbfb1c3c340823437e2a2b43e36de24b0a99df3c587d4ac266b32682bcea46b28352d9311f9aacfabf0ecc7f70538f3e7eda836e71cd077e452ccaaa9edcc9ffefa750e5a7a793d8644cffaa4d21b13638b40c992fded6a658dac531cda5e3a8f047366232b4d629b13a6a3b5e53f21ce045d038568948dba4787e324eeec54489675264c1f297be2524da096cf15cad986504def6309b539028bce7814da8b5d66a669a484ce79802957108d3697eb84b4ea18ca78bbde378f839252fb443b89f21244ff21523e1c857cc49152ee6e97f06fc816b0b11dc80c0a7b498f0ec0868af7f1ddc0332e9a25f34fb77e86e7159268b5d4fe47ff7decead3f098e2222401b2acfa3ddcf07534c5baa7ee6ce2fb0dfef7607310a9c9bd0d2cb8af3164daf6766273566804549e2ad98070794d2165351ce58e6ca30151cacbd440e21d38b86bf7c6d7593070283e03a78761bc88976666977c4596e348978eb9071ee582ccb2791f7d145bb91fbc55f30340d83e33202c5b5b9f296c70675650ee348a8c2f51c81d43045208648ee8bba98dce4924fbab85341668edeb2d7b8f9d2362869199320ec77ff7b4da850b961db50eb681f286fafc09cbe1c39ab7380e4c82c8e89632faec875caa6dbd6153c4b0626ca4e51cdf1b21b003e559a8eb2f6d8e633428389ccd81a8344eb483a2d82655d4289019909d9f6cd6811fa755d183296c6cdbec957c77e35e5c9303ebbb6e7a323ceb5b37595e0259f9cc00758d354ee05330a24268563385dd455bbaaf0e0cf2bc76ecd5f60c633631b38db76ddfa0df868ce91865aaeba0edf5de6da6beeab67d5f8fb8769cfbd16bd92ba075b87aa1cde5ddcf49096a0cdff176ad64aa63341ff316a8760ee876e1d9754ca2f75c56f2f5d2033a42a98968a32fc0781eaa03ec2cb8613291d5bee6cecdc1896acf07c8e2e360889b986dfd308fc5b7e82ae7cb5e0ca676338fd7d48ddb5960de994c980ffee276b09ce80572e11abfd9d50b8872bf7ac448c88fd38c284e59b701b884d75fe9416af41ce3f034b53ce15a004fc08e87c2f70d6aba5919b1729240f2cf05e93f1902a26efa94c064f4906fad47e355681546c363da3b12514f7d4c2a82e6180b2b073e5538eb45f3064a57e198140ee39ce3312e74bf10fe99a357d205476c7b16de056aed138ac5f88df816c78713438f112dc72e32573b7fbbb663b63e576418921def1c589492d1e65be4b817866454b0ef5cbb0fe1fd6b25810a4f5df1b6012a16baafb7a93715ca8656932e2f6a71843801bc7bba112184f9353553e530ef7b7a2a865bfb3c6318f99cdc11a20beb13e58d8e6e68b32ffd577614f41e4031bf10b36b5553e72195cd47285a3f3efd87e122cf23a3e540cad7c6d7a50df7b7159a0fe4c40c6a75e599217dcaf6795ebf36b2efccf307bada5a08c193e29e865c33164ec7cf99b223326fc510d188e526da20e566cddc1535376309ac04925ba160110c08958a773e361a4519bb27f8ef156ef898a22777f1fe90875a5fa28c45cc50f3b6b693029ccdd77c06bdf1ba7a81d2db714397becf428c0e3ecdc09a6d4adebcdc95b406634415486def9645b0b9a55b60b1bf26b2bd1f7ceb11ce34de5b35161636397ad0854f7bf9a5efc71aa575450cfb53261874631a67412f4fdb2910092628290c1965fce2a752fe6b2103a03acb1428e11272c60963c334a78e905f6a15d3f90862947281bf8998c352c5efde593ae41acd70cc78b03edd224d0f28a857bce56c3ddc39ae2e81891daebccc2e2384de768b0efc0e2e839579c8811d226633656c83192cd894e3f801cf138fc30c6434628dfab7010fd2f60af72c7fe8ee8844b5f64376af574d375e4c0f5092fbab36fd91b4f33412288a902df2171e56b1e0cdf9453876e611363cfd5f496834944321a02e58afaf02a14a3c87bbaf18a8ae0a2eedcf559d50f8bb8ef3c55c81e60617ed24e38f5b0c612ed0de529b41e318c11ceb04b4ffa1b4bde2605e0a6ebbc2421a50f2e0092c5102615ec27a7d9c70e0269330fc60fea79169ab471dde47303247411478acb3671b8499395ff10682090697f62e613179ade5c6c2091396f99694302d92267def931beb3364e91d0dd343249e65b4538263e4e4586ad91bb88c60392b521ec49805fb99a3bdc9f016ee51a3b9182e49d40e3e9a68658641e21fa05abd94a925296b239be88ed888e887d3936ff953c18fa50006f0e6418596c463a8551c6c809f4c26fec67e2049749b45649e4deb2f9128c75b2260b05af98e004331b7b4dfb2ed7d3b61b0bf01f8c4dc890988c37bb83c5d6d25266846e13900edfa1b29d8f10fcc2042fdaf4213e58c94add70dea80c08862bf2a54907abe79a7f71efe0f8a2d6ee114d62bec66a9e3f97733745f10849e6c3bbe142222b4b2fd73ab710c3499ae61f58b0b25d2cb7bd9b6f0f06dc46d19c459d6513939ffb5d1a54eaded879ef0531ad8612e7576634bd65e678ebb9ed6cc2e8cb8b94c6457a23f9050fb29072a80ca4b1f881c5e97cf94e7d5e3a885dbbe94f0cc4f2ef40a2ac9ac0bf8df8319cc56c7f9d3b86c4416ed7d416b73cba40400ac53c69b59fda75fef6420a88efbcda03306dc4a0c54e4868505953dd75419287e489dfede94d31826fd12970e8a5194bdc6c0f98dd8ab31595b608340b909ffea076b15c6691109ecc5ed3a4364094910424c61fafeb30d041be4c9e11b915f32bd00aa0e1ffd0cee28d62f102aa20138909ccde0fee3bbdce5bf5e1df8ce7e7fd74192683d023f0e0031e86a83e106d49dc9fca47c3cb4db8373e8b173c0b85c876830096c1f4e4726f175322cc5effa81da2aa8cd66dd4f056547387b2e0338e5f1dd81e24b1e27fddd77031b30cac3d829fa0db7f27433c725d94c023d58994a3fc70c2d9aa00ebce89f829d2a012c0eebfa7f91eac5771905a78a77c94070dc7554e6c5b1736fe08dc79aaad7bf2c3f3379c9b1a7126ef662914a836f0b8f962263329acd58a5d0cf872fc632d08ac4ba6d9a2269f5ced81928dd6b6cdf4ce78213a1da902cf8e56cb3988e00ab7828d2e67ab7fb2ac5a6d53a5b02a654f90b094e214b823ac68eb9932596a6ab52e5fc8e9179f6bcdc59b3abf6f205cf835c1bf269c286fb159877a87d38bb8f4586dd6affe5a096d0c1aeb28c24456a83f95ab64887b687db2ba50b3542db7c1d0a863def22e27a0677411fdf8473672c3b44c9b3bed9367381c3af70c92c51c56ed0ba56b23ee9c3612c304ff2150e37f8175a7f9a75c2b02a5544461a2ce3e8223ab470e2064c44fad0dbd2cbac5788ab6fe9f4222927088f145b1a58dcb18b2bce662ace5c2416ea65283003011c669652d80818dbba10030ab5ee63a88293b5727f5862407562f753db1d94d6b52b220ab74a0385924657161bcc25da1ff3b8ca15d3be2e4f6113075bd88682f6a2050d0c0f74b348e2f1839547f24bd8ab81e15ede16fa2eeb2e37d00552fe04b9683637373ece952115e3e192f596bfd2fd0c83c06f9ae6299c3f04c96aea94f6cc1b602e473d3a8fe291d10b0bfb3bfa1984edecd845652bc745bf24f41dbafa7e6b6dcd1674adf497de96ae46d2f7a1069f5f0f2ea3756f1c36d9a1ac99b562e769dd348bc66e3bc519b84609d9a7148d4daf7653c7dd741123cb4b84fa5885e1d83beac5085aa523f6c9df2c8f4c7707e8b4bde7a53274b9beaa2120742325c9b3038a3af2315d6d70c449482ef6d9981b0d7c0cf21930f274c0f873f82903e9ca7c5147e52beff433c8ada067d555f12f116f33efae12869c28a8c2532d2a05228fa633f7f76509bf5eeb059a3f4031d93b2de9c0070eeece5016960db5917127e77e194338e7fdc0c361a3b742f8e1000b84403fac0c73602758b42a402329498208c98056b4a45bfef306c6535d57da422639d6f938f83b4f5658b3839582b712303e53b9058dd5037135b4a5c6d55ff7814dc524a9deb24d5873001d8cab82836f95f7b5d0f212c0d4c164b61f4a9bc0b49f95a9a120d2fe37346a6ed15d0253607c337d89155922369acbb4023028cb8cc536872ce8fba7a8c83e3ce6346c412dd102baedfe987d4613da31076f369f94577a93f69f41c26f7811c1948cf7bd88c62012166afc406c700c2da8101b5c5ea1b3a7e2fec866b0223bd1b9b78f9b87e79ceee08ec5477c3ee4c55f02735bed4d3528c22913064b33f26d021466a159386b32c15efe60f783b29555484c9dbd73b5e3834cc073226af14cb78ed034ad59c1488ef6d9943d3cf365625c480f5bfc11e0be9023612c7cc4cc02f35ab77d6fcca393bcb3afdc2e7c6ea326fe23ae82e75ab331efb807f02a1ddb9395ddf65c2c0f258e0a8d12b1d2e948aa4541692321556bc79c8c48e25de6c0eb65ff29196bfe1d87ad683c66554bfd7ce2296560f3f460eaa9678fa8ed0f0d9872557d545feaa6486d2bc1419406ed78af94a3caf9e6dedc856b7218c3627c0cc5b0829257d462518efb792a9a768ecb58fc822bdfed328931e6f946b0d035017aecb96f2c872f186aedda89b30580724e3817d69be3fe7e59947a106ad7865136d3bc99bcb98ed14d94f91c7c7d593ea048b44e8f4326b101ab20bc7816eb2523d877769ddd0b41ba7dda3f5052db768befa7126392cfe5376b068e39d7703a9530d054856c93d1a21340d96620639050d1fade7f0e2342702b31e3fd6dbad60a3176115f96dfab6b63d0dbf02c568cce34133b8c6a7e0fe6bb6da6227e2109dfc101c00a296db85cd23b7873b1958cd38aa9635b0b4323034d6289c5c93b27cde4e163dbb63f730998ad6f0daacde989db06e9a7f3cc5eab6fe0dcdf1873d0260a2e72298cdae6568789aca8602037bb8311b32fa3f334783c4a841b363320a2086746ae3a0f9ddafc99f0a1d90eabc10289ac271b326311aa03dbcc1fdedd4661244eee8e41f7225fd4f52bcf3d5bf823262577110f958b834dea998e437b7589fb0cc361b90fed53d0d482ca7345757208e28fd5ddb22178184ac6771c85f73ca2a8185830f50bb085fad22951bdc7f071cbb2ef430669eb147314b7d5ec2ec1750942187968067974d2bad2399f2c58c3f45290dec1da6b200f02662cb785723f06b87d6efc78bc12d3b19b1298514d6a1675c5ac7601e2541a4decc84b8f6117242e47fd7d73d70437ae039ca562ae3ff9cb988bc8cbd085248fcbda1fa4a18e5ff580f84d93127543ad5614bfef6a2a8a366ed1f821eee3eaa9c5d64ae8eef653cf0eea3f8344051c632bf299b25a1496c31cf6ca90456ed28777e506659dc2e3332af836711f4a519b50afa26d4408b20da18ffea6851d2db93359c606bcb231b28e077f050f043f500e7ba079db0aaae295e15aa7858eda4f39502a8c7e7cf055e01c4f06697352bcdf666397cced55d73027dba8e968be64868191259019a035c34724f30dc282534414eb64ce03e936a50956c998efd7f35b8ea3653ba768e8585cae752ca79d1f495e97a227af80bf5f012316cba5a07c2b89966233c1deea09a8967e58f803ea4047eb184cfc9134b513ccd5f03a2db88b7e2db31778f193863f73d11a872ca2661e5145d53704b54988e300bc112f675c9a0977cf2fe0d4c4ee5c6c66f25ade095705693f24270e93140a4a8c51de39ab430100ee0ba528edccd7af5b3c4f169e8643b2a6b1447fa726365af6fed67a7a83ace3b3f749386469807d15aeed3a1af1bfc5da0e338825cea02bfc1cee92c1032dfe3c4d4389e72ed7eb30d1209cd542dd0d8894d78855aec616cff7aedfae1a9c2a0717faa50dcbe54ceaccf9da7d5a5a16452e31c1394a7cd4b52131852fd5ae7155ba7d02c04e75d023f068858ef44e20af0caf5f5fb6449d5d18bfbdd1e5f2f8a9ecde9957cf2cfeb2771fd3fb5772cbe538bc4a10740be2e0f379304cc71a695445a7608cd4f7d13f42d5b93b171baf7b130aff419709f17c4870aee0beb32623b4b7d06d69dd5b3968f8eea2e9f1c34f51546e80e6fa58eb3fdc4b0f8974e1d2d983b7f34c07c30e56d955ed83e51819cebb67d08a43c4d1662bad8fced4fd885b9da54c2261f712b874744019119997c441a2c90a3aca1637a0f624f26df3723fd06c70de2cdb073ceaf0cd1021554e1ec94d77a23437a5b2e61084393d819300cc027e82c54027093396483388c5c1f40a372a84738ad22ecf27f84d4e0e0b838cfb0204fd095a1c0f0336833fe8f337f9821ac19e76df6f6fbcf567910952e7a056bf27b28b031a23ae236b46ebf7de12d3fb824db7f075e85e65e29284f82c7658f08b489b1d40d18c18fb59edf95527238fec43e0b5e17addf2d05d84c64c4c39c0af84355350730e7a68ed697aa6611c9c0f40ca088eafa81afb43078049121233792ee4dc76dd79804696e5cff035926f32687c0266bbb01226969472e1d1151dd60f0e0813a82ab61952afda209604544e671b16a657743ba78fcf6765ff92aa40482b8b846b08f11d167aaa181aad59aea240ca3a30c27027329cc22e636380d5b2ca815d931d9fb7e16b5a953dc6525cf5f80ff975e884abc8c75c94d112d5fe450d5532cb49a2f5b9777c1aeb8605f3909dc0ea2d4266f42cca10b6bf572c179d677d44e5db127e2d09623edd6c6e8739ae9de5f31b1a6940acced09e2b532a1d5ff7883914101bb5150f4c13ff78524a99b0664ac7bb2584f8e60e3931d9046a4d159c41fa38846a83c84e86c599e71d46f8004560962cdff85f2742b3c4afcae97218abeeefdba754aafaff89309d53d9be50626a195e4add1900488bc4508e1b6a07b07cb885853ebefb56bfe7be3f2e246b5d7a0f46531bd86c98d3f08a3004f2591a557e72830c0a627ec210262523c36b4c470ffdbdd76ae3827d621d3049bf5388c0cf8a7454a9745ddc7b351a4d4c63ca44772606aae0edbcdcf4acc937580b1caef86cecfeeff395588ac01e9f5ecc59b5532912f11897d09c1dddf919af67de44d43e51ea6f9ff1542961f4e131734935546fab775dc647fbf863bd6ba2c01cef1c1f1bf19afda4f1845cbe0e15995585cfe79e89c2de01fe7a83a572343f241fba29e8b8442af7c780aba235c6e8df54dc4c6d03ab53a9182891ada4d42b9f0a7d55ff301e961fe9bfa732c631ee5c273c9ffd07a98d84af3bc2bec91b1b8148e786ea5ccd235537c81b1730a73db91655385dd5e1ee57f94118686e81c94942f21473977698f1fd96424fee7f234231fe6fe2ee61ab4a090734a0820de9685fcab41033790ec21b1c982711af3f03a03040ed37fd064f369cdfb7d31fd6101815429e039bf53bbdbe3ce0a57dcf44b292d60803dc080594942a920eb4c790ed7d1c8c5457fe80b7ae38a185d5c81294eb845c65aef579d90fe11125998c940f4199772ed4562a7c5de0ce4a52dff934915ea7c3370edd268231a52b76d6146029f953c7bf98bab5493e15d67f99a8b0cfd051d8cab126313e88634491be14a68ef2b11068b290412b65fce353c68ef86cfc03313c9a078ee8cb7d142daac7e3fc03ee7230bfa6fecd19df5e04113db73da8b9996eee2d364a2f61e03b61a16d14a22301f4671399911d7d7eb66306d6852d648308ee8364d989c392a2f15c1fccd76194c70ba61b653007d8e3b28180134a6f0278d0517da49163d45fa26a381b4391210b6efca2b78ad3ccbcab3ede92016f7fe256e8ff13358ebb22e124c5fe4eb32a76f4caa9a6c0380a686756e74cf499f8509bc7f3a0772f3e83cb3af1166cac0fac05a78b4b1cfdf86993c13ca7222707f159d21ba1bf55798dab1e833c59a1294f08e3cd0e849788d0330e95bd6dbd2b930bbf8559a9a1db924e46f8249acca7d7761d0e76fa5fa0ca7f6e10fcfb7db1df198fdcb5f9d9b7495222a3e4e8ae5d480e15ffb590de5aaae0142582ac9cf9e83beda3bd53fdd41b6ac120060580ae841044cf60cb58f89d1068ef533f6720a59d93139e2163a14142ea7dfdb4534af6cc13c2d62013644f9da39666dbeebe333aabd840a3a4846fec11a1a6791c909a9446fd723757aa0720c674a6993ac0dbe8168f75157bcf1548968d01731dd91d5a2d4208916babba1e1ea0bbbb8dd81e993cfb26fa10e7e1215ab9fe494f3958caaef7ace38e64fb21104b77dea4af344969b279fb6bce252b8a1c7793abbc10cd41224c9cf3f0863236d1fd06cbe861982986fa38ce4aacb778068d6e180e345260beeae3a07fe912c46be673b56f5012a0c87a75bc60b1164170a913402292307f359f6269a1d060d432a1a33373530dca8d3385f542420d3c1adee69228cf96e687241c703182b5de07c0431c8e72da9881c1b8e9823bb6d1666aad3e010310e7995342c021e7c1c1cc1628447a98e1d5134b9b403305cb55961b6700404ebab207660369ef6264ea79c6351a3226124c8c88bd25adec33066eefc651a7721009e055a11852e2c7471aec7e2a4fc91680a1fe9e0627d789bb060e9d870c650cb9c49558a4e9bb5ac4925a61b7408d0aaec03c9dab0f786ef968ed3162d44f7ccf07fc392a4351236c344f44fe308fe154921edfccb60f6906b761c94dd249479181eebd96678b91021bae7cb8a7be4ba88685492261db79937522335d53d5f4f68054da0ed711fae03a7e4ef7f3109953ad2faaf0991cb00206746fcf31dc3aaa438c87860714e64ec28da5b3ce31a3422f83aa38556e9408413bcbaea360af9e5f6dc72a64b3b6d82cf84ab8dc38a57da8c4576ddbce20f3a1270998af40262984b766f7f6e015959a44216ed5995c3d79fdec9b3272f991cd7642f1d8fe5ea8e70d5f94edb972ac45ac8f8173afaa476acfcae8d19e46627c7649029b0eebf0389021b452063bf5caaa612dd5edd09a84f72798eac1ad17710847bde9718ea56608b060476df757f8215291a5c5e1276a58f6dbcc3af6ae4c266856d4b12e0b9da2fdec6534f64070a1cd58f1aaf524b234385753831a612c4af4cacc3bb2e46e1da505fff007af75e580b8271fdd9d8a563c1c1ccb8a6b04ba142eba23a989e4f3e94313a241e6375e3f8a4267e7acc067ed54c13f31bdb409a0b8c252c22d2e2545051a45d3938805ef06e678affb1b56f9c5ab3698ff64f027143c3a6a8fca52f59e6ed329d617d99b5bb7ada713d068ced544b4d3eb3f6d7038dfddd8dc9f4a22c08a8e494273205af05ae26fd233e7125a1de1ead4bc6e09f2aefeedab206483cadd89f743815b6604b34e9adea025bc44bef5c27bb9e5a0078000e2c0901daccb0cf6bf76a146b79d5bb3ce96d2bdaf4f3ffc794afa42f9eaa3f793709321bcff4e7f6806d4f84197b5e3857f7f4c0722d2f7e30472d480d9cd2404fe4dd2e646db69586b579abb89090efae88a8776e95b6c1b137d48545e3d9fb4684a28e4029bc34ff59e53e22a057ddb42ea06fcfdde05ebf4bedb50ee122e90ba5b60b55964b052df419828c370106093d367e27fff871920b916ca5935614cf099f96cd61a48fed7e4e3fef4a7766f3889e488a28f99343a7dd6d91c04eaabc2cbaa4fa2012427a03f78bf7182ff348c7307c829870e0da66e73d2f12d0be5ccf36f9e1c5c97d65c21f64772842328c456f5a5de5ab6ab039bfa52b5fa8998994ac1d5a3e0791766c87323ce29d3e36b8740635cc9c12406b03f90b0f1c025243d334b9cc06bf309acc02eb76ec6c122a0748be75d17806821bf0242c67fcc59b681187d39b26cf74a11ec90fcca3b6381284d4973ee910f562645f8900b75ab12afdced6c2afd14549c10aa6d7ce1e45972932aebf7e482f74632fda0a5752e80752fa661b03aac869414f4c64e9657f2f2c3cbf4d464f95e922fa45361f585c583ac38729f3fc7dc768a6fc7fe1d4944d31ce472f26d07d612f30bab849fd1fe54b5234164c1d9ee06624ee7595391f7a04b87e9e19a51f0c8a3cda65933c651e19fdc81d1a83f7549b71847a94c9547f06cd4701573d8f0eaf30d7a1d901ae5be472994efd2cbe8eb74b0b0bfadb7f9759bf594cf7ef951a2a4a864e29b964da5c84f388c48b62318d6f22e6de545fa7c8118cb5b1ed4b73243316432e0752d0290e437356fe1fdfe93ad601e3775af803ec1c2f197846a66963fce8493508851a8761f1f991b5e5b0f1da5dbb1253250d67958fbb6f26e15994f5cb13322c35779894dcf9d9e2ac11a1f1d404aad1d0c978b8300eed239d58c839af5a9ea1fe978b1e5011c5cf76405782f0dd27fcda749028f65c3b5da3806d64c308079f9ca55be6788ad7af13c747b940349dfe9199452d8518e2a19150215297a5eba673fd7dec3065c63e1eacbdfafff610776cda5f4c171ec4c82d581faef8d1683d79ee5dc60b109011eb72b043919a47207a7cf53c15f8a1a4d95b263821f37ad27b024e88096bf84883dd69fba497ff17daf0dc138fbe57a23bce6d7214a9b9a893eda7155fcc244d8bd4a8d2f97eb4f700eca4e88de1a2205198bdb88af46d525965bedb9f3e07395fd6d661a69bb53e3a84eb31a676773b2a5188d5841f1ecd8af082b22149d2d09a9207912137f9a0b62f4ed6f931c5730355a6160643945621961cc252c4b056d703c9e4e4aaeaacce469e36ea80c0918a2f4b79885c488ed30c40dd8d5c0fd7654442761cb4e80565bfb5077af9088132399860a4dfb8739f20ac74880b6825280410fd28b3b7ffb8fff872a11550c22fd5c70dc0708e66ab9bf1e6fbaca4acac63568b18b4a6dab741ca28e3c9c3311c4398696ae467527dfd44cb19f626080cd2b725c85aaac473961b9171a2c2dd5f6c215c8d68f61f7406fec716a74dc9d5e4e07bb921e33f36d281343dbccd69515a04577d4119f3c2588f8f2bedfa76c17c337e726303b53637175e89d6c3b3c210babad89f7316012a8011036bab40cbef2d233f07b286fd3c7e4c4e2b37a93cd1d702269fd35b56451411c9cd1c557c6f5a6438fd7f77da9871ab81108df0e9ba466615ed798b3c3648d3914497b2d78f0881e22a0d1f305a4ccfa70c931dbe03db307cb3ef4c3bc8539a1934d7706ea0260d80681791e0782b56dd6d1a6e37f3edddfb10b98368943239d8df9075cac4142aed96131cd4c80cfffda96c5ad5c9e205de0348a495e01d3835b4882eaca342b73cc2aa6a94ca2afb5ebadb98c6430e39d727478098926fddb5ad20b69e5dc0f5889470cafdacddc44c3a353cb53b22ebd1333aa852a3dad5f02d85e3f5961ed980d3af920f51a0a3071f60edf81a4093c2262a378622a5f02ca16b20fdad2924ec84d221076622d11901c5c0143982730e1f675641ec5473654b5d9e77cd289cf3dca53e4ca2d9b722c13314c7d06deca8c48c86e98f84851794fd89ec962b11abbaf502b74a70bd70f111b29787833b6121cbc879d4fb5056908e15988b2e4f8e56ab3217d8dc2622667802d6aba984ea1f365a945c0120a4d4e9d93cec787287aa3db3d9ff93a081cad02b6884f9e263b9fc5ace931c4c54f46b85992ee454b4658a3ed7518cb117caeac39ee1b90880d4bd909d1cf3778f90636648d22609023d966ef1fcd4f7c44cdc82058c7116abadbbd52462787aab8fc7755a08aac174174b6797e253100ac13f3980301d2a7fdc734d3ac99a90a764fea5280ff2ab4c776d642f77ff3f3c19c8994c65ee318a3b6327e53843d841fa9c9b488af54399f45dc31d414fd1919adfe0fe4948066b42d59a7b27498d5fc132a0dd993dd4e5a5fdc0dfda9d6f331abf6a6bdcaea8d5ec71c1dd43094a985bac66e5109ebedd26be0d7433cc32f2d4dc509a8d477f9bbd4fc6d2eb157a2cb42f49aaf2468ec3ca1e942997b124e24211ecca7d55a4c725f784467eb594f197b4f04d8d2a414440710d46a08113134c56ea068f3f6a17acb8e0db44845c243800be5bd0aa8b77cf0ebd0dff316e917d25192218d8b57d4ba432910a9cd4c0a44c2672e90b0731c2434cdf0a1b04aba5e0a571d31480e80b2df2cad03aa3d8a6844c8772bb13a57f08fa57da877483b3f8964b4f9296fcbb4e0340704c553bd4a3ba8203c8422814789aa5e4c92fe792105356cf67b6813f33d374ccddcda44b096aefc61781aace7fdaafc44a17831e3f6caf1780f9fe1e1ca0cbff308252a05c46bddaffcb1311633a6f0922b16cb184057f034fc6a5ec54dbed02efd7e9dd5db63f1101813c4788623afb8700a4c8c4585950d94cd712b53c2fa23f1a9978ac280f5ccbabb2ee9dbce2c3078ba34276e1ed20c3ec1b484cc7f1e80752c9050a780875463d2c0a6c7902bc38b2205d46eaa2bd38ba5c70780497c775da9b3696e14eba6620c68f0fedb0bfe2d3b8e18acfc094ad4ba0a9e3778d854a521b6728a4f754627ed58f454b9fd0cab2f4f5e0acdf59bee3507be07c24a1a6323d626508e9f9512aead4885d2bbebc4e09dd34887cf3563cae9e55025bee464d7057257e3662dfd782e135ec47ab4c63e4320caf394238d672b23bd4ea97570b096a7a302f7d1a7bcd8ea2175b7bd5caaeaa531d73767a8557a50ae2d65033eaba55bbbf5a83b207691c269efc83fb4ef8f1edd433810100c9fce8f3ddf1ce3046007ebe52e0a43bfbb96635a3b563442ab4d172169ee95272e1ed5f28f92a47f7e3c9732f421986a290ba39d104b2f11ec57a1be5aae3f1be9629aba939077f6a2c5106aed647985a6dec2385d3228beff2969b38d2bc53c27874d06af1c1838399310c606735675298f339d06dccb73968cef75221c224d3f943534fc6b1bf8490fec4aaec3e4bc9303d01c6d3c2ba8f4cf8c1cfa9e0ba58cf3afefb1fd458682e3fc548ca17ba84e55a992bbec13fde27f429ccd4092905ddce9888983c0aede924679e6278f3409c268ce7356965e9cddc35318839a333cf8b86a5a550c442e92c057062810bcd082769bb45734b55417500f45b6931f2b1198207718e929cc41ad0076c45c3373a3cd530644f96f04b72c5db640e2a172197f0f148f6e39e5e1b757e62b41cd5fe426791d483b51bb87b1c23ae0fa19095a30fe4766baa93842f54989bc51649329e7f84e2a2c748f80cf00f4066807aa4dad596fd9a1b43ff15c932a6cf3576214504ace198853c9b935cd025dadf5d781f9b2d5e6aec636a50650d7ad85b847b175a87e02d3c91d2f9edce132848ca8214c3bb98bdf89e1b3253546220917a32db7f1aa2870f7b50e4b1b3bc989641e33044b62032e37d281cacd18aa74c526dbb6c6c5f7618c831f543eaa7fb1c3c1ac1eade576ddfb045856d2ab23e2403bc7a0e1bf94b5e41f73601307b1d5c06144d3e38596b7df9c05e36c05dc3f6a2776a42de140753b1f815787ddf2ee97062e3dbf207bc403485c113a54a66e625c9801d61985275b28d7c2684f96a5896c455fa7df1036d0bafd150ec6131c304d22845ae56558627bd2d6edec24e37605023cf2bf6d9caf6c805521add48c84ebc98c70869cc45b83a8bf8a937da698f79b53b195f362aa8686f9e38aed833804ec9be46298398f3d18fc8a0fdc8ab40851360027e2c5be58ba9cb114962b7d983652bfa2c288b1b11a4580f1230d2deaf4ba6936a93f2c9435b6841b677cc4b35c6a283dcdac83212da81ed7fa4f1633037403956d5d304553754533bd6c563f7fc10cf3ef122f1674d47713f4c0e2ab4f20424ff844a892e6c4a291f31b7e2df4526dc141b26a2de8697f6b7a8d6560c90f79f2e008e7f99e25f4febf15079f687dc780f37b01de2fa178a9e63b60006d2e0cbae61cbce398d50657ef7531a3f9b7d1935ed26b2583509e9d50dad4510e0bbec26af62847d2cdf97f71dd8ff318eb51e299a38355534bd436f68a153dfb90f096ee53d1fc29b3f11174f91ca2cf3962163b16bb8f927cd572f0e2850cc66eaae9d6e897cf084821529becad9af4ea79ed0eaee9454a3679bc4b3e755f7dad87f0fa003c221436dd34efc536d57345d242596d14d83f0a0ff74a29c7c6137f797d6b949e3241b01fb8f36aa216a6db34d655ad46e9e651971574a3620fedfc5ad3732431b2e60ca8503ec56934b407dcc029dc8d715a483cccc89c1a01e1ccb3e4677a978fda595c30699ceb5cbea8c50d91b4aa3f27e53597e8f43bc30aa5ed983f589fd53be26e71a31ee309291235b1ca947e22aa4e000823cfa00a1e56a85fa6744cbfa03c6c95e80b8a0a8c4869cea160d79becdf9b8391016bd1bb2932e2d0e4cb6bd0737e9c6676346d734bf1946dcb54beb4708b44496dc1c4603f62a83abad69f0360caef942aa43bead30872ac3a78bafd8adc062d81b86fc31a91b58e2efa63d1a5bff314e6edb900fa6d195a29d28e736d5cfc88c4291226d582caca89451b8ae0c10d96bc365aa85fac62aedad6dedaf7200b32d61129f12cbf5014ded2c33f89269748c9d0e83269eb521510f682a41086b6d806fd1336a54445465a5a30c6c353a7e19de876f74d5ae40360949194713f7483cab322d4a5d8a28047586e64e2979d3faec405b582fa482285fe3e74ebd36101920e59ea973057bb56f766920c465e7f4b23f38fb4058f66185af836ac292d2fefe2d343b12bf3493af43b61efbb8aefdead64e1381bd78971a6fa91c1a4106accd6bbaf7523497b34f9c5afc7f401d750e72a361d3dd19149ff5bdc75649dcadb711ef4d110ead01b38408d3edb84d3917be87ccbfc1eab0696e39fdb557a788af23ebc523aa6e16519a0de8b055c81916a369ad5e478b86df6c302b592d39c1b7e8c68e8bd3f643ca0ce3b95bd69534c95c15e835abf1871bfbf408b1569f8dd6465b78e2f32a58e9ad520510879c411bc48224fe9c19d08fda1fc936c25a5a2d2b22b1eda215ee98d6729fb77d9312b639667bf7f3c01802e7828b63e319fe7c45868ebaca8a88f56298fed2ecde5b5b04e312970b413affad4f942dd08a125f2e8af45aa88af7c6009e58df8592ebc6d840fac5bfbca752a382e4235734badef7e77219adc50d9ab12dd7c8fcb0c2df68a86d117f835e9035b9fdc83bdc52841693ff400ac17be16702931d5e498aa989f4167885be30920effc6cd2265aa7098f6ac3d1db4cb5159952f14b4c25422e4f158393fd23061d55904a936a70684532271acb59c2868a7033d5d39b3584685150570af88bde100c95cf270e3cf40938bd263928b36d519eba745f747fd1d6568436ee895cd14784cf852c8dd592fe03d864acfa9a943bea7b64abefb604b190022fae7fb8d75a45de8fcb9532d58d9174a8f160644cc050f823b57dc6d0801bb17106ae18a4e470e1156ea1ac77bb22ac7497c46554b8ef05ef9663f5549d54d20cdbc5725f66dc268664199113104c22ccddf628a387cebd90eeefc5c372d812de29e306c617311a325b208934404d09c5729e094973f160b76318b8bae84ebb4f3709910020b82b5aeb5090f5e3274626c42e268d64b52345e8886f9ed1bbc7f1e6621f0c1420b7715b58e9399a941e0fe907339ec89404bf7e49d4e7567ddd4185c8c6632aceeea1d9e896e08a510cf15c1d58eef97fe2285d80dd9d0374e1002966287c46a6d401dc4eb2a68c2586c1b1812d40eff4ef38746d6eee6ec5060dd7354d4ac31f8673e0003980e2db354c8b09a863a72453943b5762d60a3906b3fdf6d1cb9fd8b48590344804f157fadc114e9aba380232a1f1c077ee41af86d7b1ac45dc5dc3ab8f33892b6f7087caee0c62d3051dc0c03fccb8c5ce15ebb4fa743c51a91cdc4369d6c5730fddb47e54d60e4cc6ee8d8f915b24ede7ce1a5d157f8a340d4a43a13fc1a68dfb2cbbfff2ae39b1a3d2f2555dbd640e0adc6308a59086c8eb8b8a1452759c78601ab648c61613ea293b93a27703690bb280783bbebb347ecf3bc0868144dc96ab2db3c8f57f9cd104444d40943c5cf77e41736a2480ab8c4a556d410f4162165847e70263c13e48fb8ee8bb0dfc6087f1a011436789c1dd3a364250bd96cec35a2235dad0bddc8886741adf07f7bd2d9f1f4405887381fe89339de186a13a168501e8d9688233b016d8783d25261c0cf8eb693f5eea010794aad99fac53a2c4f09448ed1ad2e443b4171bceb080713a164344a55d2ad7a8d72bc378bb8967154a92c461c2130e1c13c5f27a0593ed7bc0e3f87618b763192d923291a41a01efc725ad747fef98ce9d5b8ac746f09b334cb2ae3d8859b6ce75ebcdf47923a1b195b5ec6ca5ce99f5bb0b446934adc6eb9d2aaf7ef3095dd2951de15df57252bca2fa20edbbbe348110d58b4e27fb565e74d45bce5194ad77bb9274f759022e86cf0ce36023a0fe8fd748d7402dc31514d3b2f25495071d382f78a4854aa20ac14082453663efa5d0d69cc475ef539a3add94ae35708a003b4f3160b664870e3d7805fb184162ab2e388f99648bf077e8c240a5bccca82ddbf186a96d84383467d8ea429c62971523935334918098fee351175818507a5bc46166928f1cf8aa3b92af172db5cdcc36c34cf418e6154e5eea98b507373f58702a9cb8f14feddf79144e732467ede4df2d3a9b27cc22fd489094c093382f6eae6b7f1766e9e912afc0d7ef866cf0ac00c790809f724bf9faffad1ad99f64380168db0a5da4dd035ee11547dc158f9c7e43cf629a12ad219d581bc02692962ce4d1b2881058a5e7f0874e2d88b0f335e24983b011d64a500466cc651b4201dc6a87c6b9c298988929831c0631cf819cb06e0ac0f573e19052ec334d7cec6ff5bc6105c3d10d313c3bdc41578b76893afd50685d359682b12263b9b5016c6073ec178f922042a2bd2ef6fbaf4b2a16367ff3e13b93607955e1f58240661b4b769e4cc1e3d1665515df145f818e6e730b9e4ff4d72fbadc28d38a17e43f23f0e53dd2414c0a5c8d45e2b021a898791003969fd6c498645c5cb65c77cdbfdee42f07a83360a481faff322a4c349effe8b0093b7dfd72ac29d0506cc32376185bf7c0200e8edfe714a98cf3764ea08e6064fef2567cf79b54cb69bbbb0d06027f32c0dacd3d72ec9fd8d166f430b4df0cbd7862b62fb2914427f599414026d6f3df13e53c6caeb44a7fb5a6f19bc1649a91b65a522ab3d0b0a9d4e5e0b05b7ff5d9d942fb419f235691347a1490197f22f6e3e7457f27baff3db141fdb4f8c16c18f7845457a759cf23bcf301f145ae6009b4d297769cea756a77d872501a6dc93af779e204c951cdee8fcbb62108f65024132260d20b63ad4a6028629dbf11790e915f4d6d7f7c53577cd5a5bee0d3421afd51ae7e3046637b0b8809ff8febb2be0aecb31755ee748c750faa5f79a9c19a8c4286bff1acd20baa9ac429b4a2830cb332d56a12279a31e1c95b218dd936ec039c791cd7ee5c96c3bb94ca76e4b1156a79123df1a110e276622afc654c9679038ac834de9928311fa84867165b0b1c1e7e307443916fa846de3b81c618930b4f74f200fbac213fe0c9f900ab577fd969f0679f5f15ab9676797668c6330373d05205c86c0ff63622f02126f96492d1a565a1f20c79cf9fad3d476c675068e63fc2a0d2043eecbb1497c6b3543ee47ca8b5a77beae282f8a684a3bae3c2bef42524a1e696946310ce1ce66a00081091aecd9921c812e84d75915f42417b4078f44397b233b45f5cdc0bb877ff1a13a2ba979233674f19e2602026ffbf17212e8836afee5a5a6975ad92ab681ae039ee858b869094477da0fbd5f2daeef16b35b52f387b10374664ed68601ec09203d63b01965336c535a6de90a4d739bfc468fd6596ced9956dcb0e13aba185379ade7b467203c80967b7012f6955a6ef5d1b1fa375c670c71a98e34a6ae8704ee61dea6f1779b05515c2389c36e97cc5f383ff5c08d58f3d257c005f7b0e564b706784e961ca7b32b27df2a418c96d44799f283f0a66fa47a5a996a895c4168c60f986540a91cb2f78eb248dd3b3f2d21e516e7be8c6860e226c61a91879f7f0b1c150f3b1550a0769eb33b95239a4b2de4563b7dfd611362945872accd896b9f12afe576ff7f3d7fc653eba9e7f2b4c3a6b1eb060c3d9dee1baa5b1b5dbcce3d5cc5df9338712cb140e7eb9f6de352cf5c0f75c30937cb99bf725972c0e138db026a1cb8a2c9295984695ea0abb954a487385eae16585a1e3935cc2a4f68a2cfc7e86090cddd5cd7bdfb875eb89e5dfa54c47a9004974396d7a7ceb110b375a6e4623578691e232a5f32ffedd3f9ea0c27ab89de59f9a2c8fa576291bfeb54af6e47b743927ac1b15206046f206141ec86e5318d11418c8e389c6e37ce710fb1e9b7b67bcdf041b9b1846d763fd442bdc72d9ec6c37e4a01854d5a2c8cca95b1ebfb5e1ab5b5df5b40d3c5c7a705a5a37ce7498d7b7c6c6c771a3ec2fc9f597dd23912c5d3b23343f4aef12293484af8afc47fd6ad27cd65ffbbaa293dce96d78f8837d07cf0189d6f7630e0bbf47856c18df4e55f803e0fd0f2b1ebc7b25f5fbd1f6b2c1e9cc82c6c5928586210392d8d826084b82e43e8e389080e86f43100ab0b14f5b4f946197ab68b8b0dca53c05db87859e7bbd1de94f27d64844f881adfc8cd9beec1e8b214767cd0ddadc71bdc2dda30be7d9e00903671c4596abbde1b4742db7c7830b63b932150fae1be0218e1efa6ba158600a7c6d6b810205aebf763523ab92a7fffc5c64648211f6f3411747a4582631e7d0b0452e8d16780ba1f443c37a891b529f9ce963af5b24f1006e73ab6e63fe5c1332ab3d2d905cb46b4c985b49c26c6f78544f572a0f6e43fe443da487baac8af9dcd4d0462e7232a61446b75ff3c7b7fcb3f564d0022813cd817e09abd54cf22e76185e56787b418a00fd7548cf3a2faedaf016e16e1908b5aa288c27334a4db269bc2921999e8e0b5985cb928244278be364d929dfff46ba81856914b13d515459eda5884fd5cf07875a47ba96bbe33006fa72ceb0967ff6744c2c2592e53ccc89c309aed3cf2c4f88dd929d04e3e31d04c5c0d7e17e457e1a7a304b29e7748d8c9ac6efa4f19c51583cd8a927b6f86a4e59f780c82d58cef10f2303eb5bdd5f321dd4160ed5bda9cfd07ef05d035eb141944bf815b308e80dd00f66065b2209f7986e6f7475d52a0287419c8d15c20e32abfb2e9cf7ddf77048d57656640715ad63dd16a21e2b240fdb1f0c1a3b8f906aaa6c938117235c251588424daa799bdd95d213d358ac52a0beea4e3887dff994ab8bd461ae76dd7a9b012780c49dd13aed9bc8ea5b04660e51d6d9449e9ad89af60da58e854dde0231d88cde3238dada5978db5aaefae0d5061acca0fc81964f69ca4df882610b1be889c5913e19533b0b037df030d2c5db936c2114bde8b8d97328346997ea582ee6e5c2c98f25ef16a4abddecf50b93baa881e1dec06f88b432f4c4236acbcd434e1917a1e793655aca821ac82d7113a1eefdd139c19c4cccdda11c7c9e7b21b19ae4d41d7f95c305360bd476dff8d641be7ca393bae846efed025b1d00ab1f60c49f5bbbda17e0fb5a0f6dba7d9ca1d2cb237531ebedc7bd339db993febdfef00972f045b843340d4b0c5f4af6f3b94860114cb564383643fccd9ad9ffb0ef5081f0e6fb3141ee34681b35036f7196643f78694e0d6b770a4936733c5234f731ff02beda8762a7bcb904aafb12daf0d062eadd86446a9a771c21c532647333426556cbd2388efe8e0e29002f318edc69b838f4929f4bb1fd8e4bdfddf9ff7e58c9b17411087e00de44672266dae975a3e22d76dd92caab9ca2bc1162b570db61a9cada2257350997f812d4c3372389ea2aebe1ded421342aca615373739115eb8effcd550de961a1428713e4dfd239b58a72225a9d82c633f571f8c0419d89caa30a5bc95adef9cd5bbf2e8560c6a1a1e5b3e97e1597975b6d4491912b00a1e5bc98f4b196fa303b2a1212c9ae077328fcb9ec9fed0f78c743dcaf0db478be2c5bba8b29bd05c80f21b8cff406c015a3244f9a308bd00e56a94fe510b4c3b1e6e266278e87f8a9e10084bd739d8791cd06d8235dc82a1b9af46d7da3a1716ddd2d61ecf66accbf33116a2a49ffdc95b90537c9ad57cdd76aa3848510c8ce55a5d8b23271840a35afff16fba6b0580cb3fb5e77c73ed8ed273bcfc17a896237bf05d47c0e1b1f8b6326fdc458f759e1cc87020e55d836bbf58446874b4d61fbaf42b2286674e7b6bff961642e2df2cdd208892cfd117c03ed46c295fb213f0da7452531d1f2ced73383ccd9ed5da516055b195caeac81781444582ee7e56d10aee30eaefb55ebe707d2c74e9d55edddf33e5f3510c56b9ee2dbbe29f0518db0716ad8179c71c52aead345482344ea07017f545a5dbcbdf9271b43babe4b9f4ddf38527f7f7f733689d033f52ff36918adc341b0e91b14b65bf4043caac30e9ce38cff802ad0bd9be6fb5c7770ccfab4ec009e22c5babfba515f7034fa1ee44ab9146322916a105e290c3fd16fc473bf3893dd45c368cd6f9ebe44409166385110840dbbdceecb4aa02d84c3f316b18a486e65c794ec506848e00f53edecaf51740bfee29247731bc744990128923ae9816881a608149cc8ba01c6d6cfd8f723cbdea9ac938d9db138c918d46f42f00c612a4f99e9e5330f345f15224cf7412fe5f37a1d86263d00527059025066984d5d19f778f92a146248d969442d3a19163b3fd6b827842ec4938f719322cb59df920ae63d7994403c05552efe07950b0d17b87d56eaa82268fa09d05f74555f1d677ed8354dcbce3a47636c323bc45a3449018387be1ee1f3bb0fef261a20e0ebc2102d9e4dc99a162a9a798e033e19438873bdc87e9d8a1fd61a72669aa1a7d7a49325dbab6189635bbd6a7527b1859a9df27bba415ca6941ed6342afb75181d05dcd2decd5ac527c12fb4a7f38f9ce7111f9eaabfceb7fc02db73855d72cb04d472d2186fe5c28f0afbc47de86636beb1e8971ca0878eaa1725537a213a12d153bb63a4095bf7b0180c9be7bef110c7348e66635f75dcb4eab8158945a5d7e68c335ce13a5b8686da51977249a11a8ff118145687c1c1c5fdb9378e20669f2ec01fdc8f9159373c1edfbe667c425fe2026277a94231e95d15bfea45c2e2eaa227b723ba36e150c86a99ebc84a7584c6adfa2663e3bf8a2f2e97f6d65d21332d57654d3b97cf557c37d85e01c61a376a9d4a2a802901828249e25f06b05fb3c2438278a3e28064d2a3601ebbebd33a20807ba453b0a063f725cd48de973937ff824de6a5fcf5158f495e51798a518b016ebc6d88d0752d3ed192f29dde2351b06c7706094d3ffc37cdbe1e8909f361e1c026f553d68bd490b86d8c150aa4470dd5a5fe3fa7b11feafa0b0909cfcad131a87080bfb2e96829940b6c10c4a4f3c4ef968faae8fcc21c7d298101ddc0dfe66de1f02ec0937767fc05b40379d6c333304d9b959f69dc939867b511c296c33e141d363b4b627884500d215c810ed4a9d740a9d839b20efc6ab37903185cf2ea94c863c93900c39ebfcc174b82e58b65537f7ee768ecf301affcd4ba7bf6d9d00ab459732e9a2e61107732a148805f25c65a907f974fcdedf2ac1a445bfeabc0229b03ebe5f55905228b9bd8b455db8f7554a40cb0dab8b250a406aac26e022ecdea28db6a0fd5dfae1520a6554d2154564e38d395fe620d7f51cd52902934d13c560ae5cd94b72296f10afcd6c799d3620e80cdecd26dbe103af13df4fa3f100365a837027c9167358524da0e6ed0ec2526d4ecdc429a0329683f5bbc9f79f814366aa2abb13787ae4b3ba002ca2155df80621af39d1b3be8d886fb5df74d266ad462f35d3cfce8d1324251cbafe6abbf6ab5064208e366a45ecad995bbeef87d30d848ff1740dc915e92c7c722612328dc44b1eb002541e92f500f7dd7698463a6d2504657c0f98e607522e8bc92319962306b9ec21ae60ffceeab7c93bd9ad65bdb37c5dee7a68c3b62a0b09b071e5bf6fd09c424fab760d600a2bad691943b7a75e4ee15a4ec36ec0dd26cbe017dba093b80e2c26d3960f1569197576732f94728b7dc0910273ef79ce4788e54d43d1129e45adc5c7c4cc4037e80cb7a9173ce4b0ee8f29cffddcf5ba41494dc039774db0ba530bea0a60b2d9ac8c3dfe709f7e8670be41c3d690872b0cf3a581a773df2638bf2902a812b7a9f1eb2aafe53dfc1b2a480bb3686ed71864a711acf793c75b2346f5f965ef3983d9c6379a703cbbb2f8d667b1df468229e313e2195ef7ae05d8dd94f2899390e69fda389e7a65f997131f4189a5aa030f776f642881f206b6d77bcbe42caa334b13d640cc7da2ba3f3d7a771bd23389f7c5ff088658cc6847ce9a29a213414ab2bc8b2f316ee6b16864b76365ee8e235c5dc33fe1202095b0438b423cac8adf35d9f039a4f87d694a254143b1ec78fa1d9793fe79523c0d503772302867006ccd00bcad284fbaafd537a7290bccdefe8f267448c5232d853bdb2a93ffffae74188cc3e2ce051c219a634e860169219a958d6bf3022d9478a52610e926631f077c5b4f568524745941c88c2acd348b1b1b764b4ad48d09d5f52b5fd32d41905e79db57126b6a5b34ecf216e0c5448bcb52540ae330129ab8d319d98c7a1ea84bb1139387e03853457a6c1d5e1e4f7c61c2a196fc2df06de9c8e1514c5ec4dddce7f26e33a13cfc7734cbf592cef5239aa63291a4568d61fa59b7725a940237e219beea86834ebb663fc867710f1d6065e36782ecc8add12f22986a4842f17e874f8e24ca8d64f79078b96f49870b17f0a0125437cae751c745166ff8aa61329a2ee186fdcf6a2f108a8df9974f4f651dde55a4ab5a1ffd69227f67c885eb63ffbfa2654a6c3925a5cdc124947a3f2171ab066c4f2677ba0797f964b47793f33c7b9d098afbbf0bf2acc9545881a1482c6c5d7f2c4cd86d05758e5531da46d019bdcb393b3462aac97e58a46b9d5b64d49a83108fa0807eed30740ff8622cf8e1356aac52c3ad4c79e5f5d4f718c153444d524224ed9442e1d9547934c69bd52843e6db3ac1f440253737867238ac8dfa957e227798e38692ab3633edece6cd32e2076a31c094b86a75ac3b802ea73d50e3cb08bf550e3ed0b40a143807379a8395c47b339b4442a4bf7fc677627ead23155fd073087b9dafe0184994d0963a64eac26eafcc17c274a96b8708ad5992b3c2626a20653132283a3c14cedc5f706406b6b32a2c3934c6c2ca1156c9a395edb0c611907db8bd039cdb9384f736271a22b9e110e665aec1f9060e11eadeebd8988003ce28ea33a55a7542e5056ee32206c6ffe04e2f087286ed66bbfbc2af7f4d71738869adce6c743a053af426abb534f4158c56fe2508d56f1dc549ff148db9f9072e68d9d978872d46762cf414ed162ad9839f5c19f59704c5fd8eca2e4bb26fac19bc51fad33689fd001a0d5ac19a0ef25ba6c02797e3742176a652dccf9fb39a2e9efb0d00057945332c94866e2343ebc482ba395a73bb527181a2c8d3894f536b7016e041277e62deea4d8d100dc0baf0c92be5d7e54f885100598267621a38b670674a0f86008ba8ff2558f47453371fb199e1b8569322168d2b67eb5aa0c3c33d66f50a1b67ce8e9d738c2c2bd4c1e6236867e89aafcb59ee3d501ec71586f45ac98e482809b865ea635f0a030af1418c06a12a7dc65db62a4873e25a7bab7f6f1b1c9c781303676a56696498952b24d2e3321a8971602c537ef116473f8186a5c9c622f51dc4697789c5d2abf28bd5b3a72d3c0ec09cb55eb4809006b27f0367401e55309d71a5c3f60b3c77dfd587e364e61901de781fe2d0137f49bc2bf72a0e984e22f03e97c2a0d77012806bc0b65b8b03c487c44e2cceb2333ad2a010b636640c235c575391e6a148539b45a6cf34a2fb0499790ef5495bd562f760553ad8ac696abdb198ad5ab0ec7dd6970ecd94da90074a2272698f0f9f09c1fd82db82e9af9fb5fdb2a0b0105fecddc55bec7003867fadc3d7fc16ea2bd5b68a6300cffe28f6bcad2582d9ee999af552549b70a43f8a0f4cfed9e271280fd89010f54c4d0fe17927881117badacf9e18b9be1a06ff47c60d7b06ea3e65752db5b44a8ec3b4d5122c492f87d4e87b7c31ab3ee7a96eb7138f6b087bdc220566b83047525b0e64efc5417213c69b45b5f77c2e091dcd12d52aa0ecb651c0b545ef320912764d5baa76468d35ce5e1a75e8205c8fa326cae8bbcb82c5e639b8893fa6dc20fb94fcfa66137276bef2ca11e35c46412fa4de80f599e7b641dd102738ed53888bb4af551d2b37711fc72693371cef4fe117a2bbbaeebe7a76e0f3960719dda607f9124ef9146db5033c97ef998a166e4d9ff55f9559c5722a36c331d69f3fdf934a8440544bafd0aaebb774910ffb87a63b2a52b4fd85445579e5c17f1cd7d7aae11a9f97c0450f706d645ce1601353372f07196453657082f338beb13a241b4b492f379f48776cd4ca75b1e354c4909b62640722f3a8bfd0cbd5b69cf0d1d93889811e3cb31d22c60a725ddae769c3884991428a55153c9dc9ba74508eeb9fda8c52959031750721dd3d42309ec5014aac5c9234ddc51d17fe78622aae6fffafa4f6dc4d38da59d0d2e21743a40072d1d8465f38335285639d2b34591d00d279b1f8c69f096ad1265c716813359a0e7df83841f39bd76418253e990ebf94d798fe7a6c969ab2d6cf5529a7e216cc333a67277862c8c083a04f30c9ad1d145b2959130edfa25b87390e170c85d7a8a5c8cabe59f093b7ade89e0fdce480fdb4069839a100d8ef2a462459ad914a8ee3f6e32950af85730222e58419d039d9e5bdd60a33955d3f94f1a8372c82f66a6e332fa2b02b1ed1d414f419bcf6de63798572131c9b8d5616646cd6ce66a67c57f7ecf322da1fabdcf4ce132840325bc66835411984eb3ef0e2c2879d8e7db2e43db6e2b7ab62e456a978e8e843ea5f4650fc07de3f6072651c6d5131fc41f69973b5a5f3803c754aad904e6e482c56578e326359c6b7e03b5d87f990a4e4ecce81d56fa5f42390405c75f2c6d1a9beb1b62630ead6ad466fbc332a3dbd656e0fd8c25740ab9e2650224172a3b18e1fce6653eb9a804eeab85db4f0a05957601c981f9947c17280cd9a38a3821fc3d81f51ce6fcf421bee32a642a730a731276a089d6194da8a86f11ba4690e8ff17e5c13e93f03f7f81d95de8926bcec0ad71945508d61ff0e49d5c6e0827fd6db20097b7108e7cc09b424654bcae2c645534d8b19476e5d0323633b11c0a3978901048c7977596a8264d1f1841ec52e647bcd1b0dba655b939b2e5a57c8e53eba47869c4239645d9c6c5274d483983ba820bdf3862afcdadb584d87e62c57ef57e2b18fd997cad3acba786c638520d807507cde34e939be18347c15b38ac081a4efbd721e2f098f5111013888743d3585ed2731028bbe395e569023672de34f75f6bdfceb6122b4319a0cf11d1eb627b365286ac7f0494993918043abc30964cf854d849298fdbbdff895d893cc0aa6a6a698ba2f6b8e7586cff6b0a9ba539e4f558e8a47ed914212e9007d4e38fcb18f5e840740213d196cb564269737e5978ed959e14e3d8361902e41ddac4824d89117ee38fd2d1859eb42aaf85285d662a9c75bb2ca21addcd429a41668d628fd6ea809b654a3f207d6efcb87713a526e8dc4528d53ac3d93ac23b8edfd60f0afc7e363d8f2214940a5c75098b7e05f04deba074df4166aaeaa426b4ba1ed68116109ca40fd9884df015aad41b61a01da00df41573ac47f979aa3d8486e30c9fb6544d310db08dcd5759e529ee06d3331ca5a4a1b87e45df32ca93af2b63c8c3f47912c337a083d22b47369e8ea6c3f8a1847110b7e5f2b45be50832d8552cfb24b3acfc8445b055d86b03eb58cbd2765a9084db51b6944497b6f17d8847617cac2e373e4ce8aa6135f4c31d1dbc87ee3a906b368669753d5cda8ed2c5a80ea845f6273fafcf2d3b9349e609a3102565192b1469062971d5b6bfe8d7f54ea370751ce5fe6c6598a7109f2c2ce23c745b96b06fae0fa86be904ce6fdc09ddfc4dec8e6452561450acd4f43dfdafe7d33e90483178afdd53dcc61b94eb465e9011042b5535bc965acbba9fbb7387df0b7d5ced1cd53849ae7d40ab216f4ac8f11f90fd86a38d6eb6ee4692286ddd714a4a4ce0962b0d61ec310aa16f5ed5d054c9780855102918b4293dd95e277a2311c3990b2cd2d43781b0df5ef16a57f91206761b5cb96ed75c5700be98aea3c54d5eff88cb55920ee6ca04a5a8bc7c3caebfcd2b46b57bb109b04c5f491fcd8113e562a8ea4d7372f82820b8afcd4f14f1cc185b0843886507a8cb4d526ac97b2f8d9aca1acdf65f51abf7366ef393e23981b8e9985c6febabe84e18ba3eb8231b0b7d413cb1638bde31d9f1ca2e98dc450c5d778f9fb617abdeeeb8e002308e3023ae3d085276a44bacc98912c427a1693eb936d3120c12071452143f441bddf4e19a5e1114638ba16ac6e1934899a5488ef2d2b1d6d092480ce1ab5b607aa0706ecf602aa3506ccce99f4ed60d058d8d5b2e7f11ff3077f30e8fc8092759f0cf1aac54f1fba60c02cbd3da6f648581fbc33b1ffdecc38388a9e93790ca1689d19fb7ead4acd4107fec9256f684ec2f41a87d7ed16625787821ce5fb23c22dda2f50bdb272ee1b56cdd56254d5f59acdd1fb4011c04f107f0981edefb05a4b481b4410b56aec51dbb4da16b1690c0f6edc7d61aef19b9e64e305e953b020fdf7af11fa51498b798dd7166bd996c5383162e543a813fcea13b4520b3c5da749dba3c0b98e837395b92a97a1595eeb5dfad3109613fd47ee1b66efefc19987d49fac557b57f75378477f2e25bdd570e3c3f07d96b7de7cdbd4cea0d04f524f02d6b7b51f725d7a62f1371e10e756b2e87278fafcf655fe040b9a5f16daecf53c077ba87b1e0161afc972d457bbf2e0f8817538be96e8f77f3ba57be058b592056890c620f75afc559ff2e5f5fabe159b6683a7df003eaded16c4fa9b233d831f7bb153cb177fb06aa1cc09a7266075fe3b76f34b5a09591995132c0f84887e94be4f59bc2e8b72410899ffcfbdeddff82ff1edad01ac73e7610f3875078917ebf30d4de0f1d2c001c16f37bde6b478b53986f74b63ab7c4f2d8189e9b2fa0a84e206f09f5ca8b7215e1aa76100a628bf9960ea11b1d67b3e740f37be19b3fe40985b9fc1bd10304e80567999cdb613ed60ffb837bccf27efdf6b07f57a4441b1501c831d93be11a4b7b546d7f17beddbaaf2fa3bb0647220c5df3f6928163f4c88232cd906f6621cb04a78b3ad0ca66c0fac5e3cd9edf7f798922f25803149a83c37cfd3051ea4550517e61599f9dcde25dc2ae1bc350b3899f2d935bd2a9143abbf062b9a3d028251380e5028fbb4dc93b628736dcedf520335b6a440c7c16cb91c1696cb46eb6ec898ba414cf5d03e4f859a4d415515705f4db9f56de15710ade3a36288c22a08df1b1eb926b36a6973883bfdc8f1c06523df1987e0284ed2b1dd11c97b9e9d4038a200fe962607f5cd3aee8acd33ed6f2b679fd0d2f27b5a10c9e55dc63c3163739de39c91c99db2f70337bc1d987b98e65015b10c2de47c0</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">
    </div>

    
    
    

      <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/" rel="tag"># 设计模式</a>
          </div>

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/Design%20Pattern/06.%E7%A8%8B%E5%BA%8F%E5%87%BA%E9%94%99%E8%AF%A5%E8%BF%94%E5%9B%9E%E5%95%A5%EF%BC%9F/" rel="prev" title="06.程序出错该返回啥？">
      <i class="fa fa-chevron-left"></i> 06.程序出错该返回啥？
    </a></div>
      <div class="post-nav-item">
    <a href="/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/Design%20Pattern/14.%E8%A3%85%E9%A5%B0%E5%99%A8%E6%A8%A1%E5%BC%8F/" rel="next" title="14.装饰器模式">
      14.装饰器模式 <i class="fa fa-chevron-right"></i>
    </a></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <p class="site-author-name" itemprop="name">zhengyidi</p>
  <div class="site-description" itemprop="description"></div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">39</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
          
        <span class="site-state-item-count">5</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">7</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author motion-element">
      <span class="links-of-author-item">
        <a href="https://github.com/zhengyidi" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;zhengyidi" rel="noopener" target="_blank"><i class="fa fa-fw fa-github"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="mailto:zhengyidi1357@gmail.com" title="Contact Me → mailto:zhengyidi1357@gmail.com" rel="noopener" target="_blank"><i class="fa fa-fw fa-envelope"></i>Contact Me</a>
      </span>
  </div>



      </div>
        <div class="back-to-top motion-element">
          <i class="fa fa-arrow-up"></i>
          <span>0%</span>
        </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2021</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">zhengyidi</span>
</div>

        








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>
  <script src="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>

<script src="/js/utils.js"></script>

<script src="/js/motion.js"></script>


<script src="/js/schemes/pisces.js"></script>


<script src="/js/next-boot.js"></script>




  




  
<script src="/js/local-search.js"></script>













  

  

</body>
</html>
<!-- 页面点击小红心 -->
<!-- <script type="text/javascript" src="/js/love.js"></script> -->
<!-- 鼠标悬浮 -->
<script type="text/javascript" src="/js/mouse-float.js"></script>

<!-- 鼠标点击爆炸效果 -->
<canvas class="fireworks" style="position: fixed;left: 0;top: 0;z-index: 1; pointer-events: none;" ></canvas> 
<script type="text/javascript" src="/js/fireworks/anime.min.js"></script> 
<script type="text/javascript" src="/js/fireworks/fireworks.js"></script>
